aboutsummaryrefslogtreecommitdiff
path: root/ia32/float
diff options
context:
space:
mode:
Diffstat (limited to 'ia32/float')
-rw-r--r--ia32/float/float.sts37
1 files changed, 37 insertions, 0 deletions
diff --git a/ia32/float/float.sts b/ia32/float/float.sts
new file mode 100644
index 0000000..158781c
--- /dev/null
+++ b/ia32/float/float.sts
@@ -0,0 +1,37 @@
+defasm float_init
+ # 9b ?' ; wait
+ # db ?' # e3 ?' ; fninit
+next
+
+defasm float_fload
+ # d9 ?' # 04 ?' # 24 ?' ; fld dword [esp]
+ # 58 ?' ; pop eax
+next
+
+defasm float_iload
+ # db ?' # 04 ?' # 24 ?' ; fild dword [esp]
+ # 58 ?' ; pop eax
+next
+
+defasm float_fstore
+ # 50 ?' ; push eax
+ # d9 ?' # 1c ?' # 24 ?' ; fstp dword [esp]
+next
+
+defasm float_istore
+ # 50 ?' ; push eax
+ # db ?' # 1c ?' # 24 ?' ; fistp dword [esp]
+next
+
+defasm float_status
+ # de ?' # f9 ?' ; fnstsw ax
+ # 50 ?' ; push eax
+next
+
+defasm float_add
+ # de ?' # c1 ?' ; faddp st1, st0
+next
+
+defasm float_div
+ # de ?' # f9 ?' ; fdivp st1, st0
+next