diff --git a/src/arch/x86/isa/insts/general_purpose/flags/load_and_store.py b/src/arch/x86/isa/insts/general_purpose/flags/load_and_store.py index 76f81c1057..31723b3442 100644 --- a/src/arch/x86/isa/insts/general_purpose/flags/load_and_store.py +++ b/src/arch/x86/isa/insts/general_purpose/flags/load_and_store.py @@ -35,10 +35,13 @@ microcode = ''' def macroop SAHF { - ruflags ah, dataSize=1 + ruflags t1, dataSize=8 + mov t1, t1, ah, dataSize=1 + wruflags t1, t0, dataSize=8 }; def macroop LAHF { - wruflags ah, t0, dataSize=1 + rflags t1, dataSize=8 + andi ah, t1, "CFBit | PFBit | AFBit | ZFBit | SFBit | (1 << 1)", dataSize=1 }; '''