diff options
Diffstat (limited to 'src/arch/x86/isa')
-rw-r--r-- | src/arch/x86/isa/insts/x87/data_transfer_and_conversion/load_or_store_floating_point.py | 4 | ||||
-rw-r--r-- | src/arch/x86/isa/microasm.isa | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/arch/x86/isa/insts/x87/data_transfer_and_conversion/load_or_store_floating_point.py b/src/arch/x86/isa/insts/x87/data_transfer_and_conversion/load_or_store_floating_point.py index 6d56ac3bd..2a4c3f0ed 100644 --- a/src/arch/x86/isa/insts/x87/data_transfer_and_conversion/load_or_store_floating_point.py +++ b/src/arch/x86/isa/insts/x87/data_transfer_and_conversion/load_or_store_floating_point.py @@ -56,13 +56,13 @@ microcode = ''' def macroop FLD_M { ldfp ufp1, seg, sib, disp - movfp st(1), ufp1, spm=-1 + movfp st(-1), ufp1, spm=-1 }; def macroop FLD_P { rdip t7 ldfp ufp1, seg, riprel, disp - movfp st(1), ufp1, spm=-1 + movfp st(-1), ufp1, spm=-1 }; def macroop FST_M { diff --git a/src/arch/x86/isa/microasm.isa b/src/arch/x86/isa/microasm.isa index e961cc63c..c8bc36b69 100644 --- a/src/arch/x86/isa/microasm.isa +++ b/src/arch/x86/isa/microasm.isa @@ -137,7 +137,7 @@ let {{ assembler.symbols["label"] = labeler def stack_index(index): - return "(NUM_FLOATREGS + (%s))" % index + return "(NUM_FLOATREGS + (((%s) + 8) %% 8))" % index assembler.symbols["st"] = stack_index |