diff options
Diffstat (limited to 'src/arch/x86/isa/insts')
-rw-r--r-- | src/arch/x86/isa/insts/x87/control/save_and_restore_x87_control_word.py | 12 | ||||
-rw-r--r-- | src/arch/x86/isa/insts/x87/control/save_x87_status_word.py | 18 |
2 files changed, 28 insertions, 2 deletions
diff --git a/src/arch/x86/isa/insts/x87/control/save_and_restore_x87_control_word.py b/src/arch/x86/isa/insts/x87/control/save_and_restore_x87_control_word.py index 0fc4ef7b7..5657c8d47 100644 --- a/src/arch/x86/isa/insts/x87/control/save_and_restore_x87_control_word.py +++ b/src/arch/x86/isa/insts/x87/control/save_and_restore_x87_control_word.py @@ -38,5 +38,15 @@ microcode = ''' # FLDCW # FSTCW -# FNSTCW + +def macroop FNSTCW_M { + rdval t1, fcw + st t1, seg, sib, disp, dataSize=2 +}; + +def macroop FNSTCW_P { + rdip t7 + rdval t1, fcw + st t1, seg, sib, disp, dataSize=2 +}; ''' diff --git a/src/arch/x86/isa/insts/x87/control/save_x87_status_word.py b/src/arch/x86/isa/insts/x87/control/save_x87_status_word.py index 2739852a4..65ff8006b 100644 --- a/src/arch/x86/isa/insts/x87/control/save_x87_status_word.py +++ b/src/arch/x86/isa/insts/x87/control/save_x87_status_word.py @@ -36,6 +36,22 @@ # Authors: Gabe Black microcode = ''' + # FSTSW -# FNSTSW + +def macroop FNSTSW_R { + rdval t1, fsw + mov rax, rax, t1, dataSize=2 +}; + +def macroop FNSTSW_M { + rdval t1, fsw + st t1, seg, sib, disp, dataSize=2 +}; + +def macroop FNSTSW_P { + rdip t7 + rdval t1, fsw + st t1, seg, riprel, disp, dataSize=2 +}; ''' |