diff options
Diffstat (limited to 'elymas/lib')
| -rw-r--r-- | elymas/lib/math.ey | 22 | ||||
| -rw-r--r-- | elymas/lib/sys/opt.ey | 4 |
2 files changed, 24 insertions, 2 deletions
diff --git a/elymas/lib/math.ey b/elymas/lib/math.ey index db04c7b..cc9b288 100644 --- a/elymas/lib/math.ey +++ b/elymas/lib/math.ey @@ -24,4 +24,26 @@ } /base deff > /math defv +# FIXME: INTEGRATE +# # 0 -> float +# # 0 <- the int portion of the float, rounded towards zero +# [[ +# /rbx :popqReg +# +# # allocate result int +# ::internalAllocateInteger /rax :movqImmReg +# /rax :callqReg +# +# # actual conversion +# /rcx :popqReg +# 8 /rcx :fld64MemDisp8 +# 8 /rax :fistp64MemDisp8 +# +# # push int on program stack +# /rax :pushqReg +# +# /rbx :pushqReg +# :retn +# ]] /eytrunc defv + # vim: syn=elymas diff --git a/elymas/lib/sys/opt.ey b/elymas/lib/sys/opt.ey index 4229748..df3d210 100644 --- a/elymas/lib/sys/opt.ey +++ b/elymas/lib/sys/opt.ey @@ -891,7 +891,7 @@ /rsi /ecx :movlMemReg 3 /rcx :shrqImm8Reg /rcx :decqReg - /rdx /rdx :xorqRegReg + /rdx /rdx :xorqRegReg # FIXME: Is this correct? /rcx :divqReg 8 8 /rdx /rsi :pushqMemIndexScaleDisp8 ] emitOpcodes @@ -906,7 +906,7 @@ 8 /rax /rax :movqMemDisp8Reg 16 /rsi /rcx :movqMemDisp8Reg /rdx /rdx :xorqRegReg - /rcx :divqReg + /rcx :divqReg # FIXME: Is this correct? 24 1 /rdx /rsi /rbx :movzxMem8IndexScaleDisp8Reg64 63 /rbx :btsqImm8Reg /rbx :pushqReg |
