aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/elymasGlobal.ey8
-rw-r--r--elymas/lib/sys/opt.ey8
2 files changed, 8 insertions, 8 deletions
diff --git a/compiler/elymasGlobal.ey b/compiler/elymasGlobal.ey
index cca3ad6..3e14219 100644
--- a/compiler/elymasGlobal.ey
+++ b/compiler/elymasGlobal.ey
@@ -479,8 +479,7 @@
/rsi /rax :movqMemReg
@unboxedAbstract
/rbp /rax :cmovcqRegReg
- 56 /rax :shrqImm8Reg
- %F0 /al :andbImmReg # al == type of abstract argument
+ 60 /rax :shrqImm8Reg # al == type of abstract argument
/rdi /rsi :movqMemReg # rsi == address of concrete argument
63 /rsi :btrqImm8Reg
@@ -488,12 +487,11 @@
/rsi /rsi :movqMemReg
@unboxedConcrete
/rbp /rsi :cmovcqRegReg
- 56 /rsi :shrqImm8Reg
- %F0 /sil :andbImmReg # sil = type of concrete argument
+ 60 /rsi :shrqImm8Reg # sil = type of concrete argument
/al /sil :cmpbRegReg
/typedNonCommon :jnzLbl8 # non-equal types
- %E0 /al :testbImmReg
+ %0E /al :testbImmReg
/typedNonCommon :jnzLbl8 # non-trivial types
8 /rdi :addqImm8Reg
diff --git a/elymas/lib/sys/opt.ey b/elymas/lib/sys/opt.ey
index 72f1897..df315f7 100644
--- a/elymas/lib/sys/opt.ey
+++ b/elymas/lib/sys/opt.ey
@@ -265,9 +265,11 @@
i 3 sub logic * ==thirdLast
{ ==e
- 0 e * STATICTYPED streq { 4 e * sys .typed .type 0 eq }' andif
- 0 e * PUSH streq { 1 e * sys .typed .type 0 eq }' andif
- or
+ [
+ 0 e * STATICTYPED streq { 4 e * sys .typed .type 0 eq }' andif
+ 0 e * PUSH streq { 1 e * sys .typed .type 0 eq }' andif
+ 0 e * STRINGSTAR streq
+ ] any
} /holdsInt deffd
action CALL streq