aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrahflow <drahflow@gmx.de>2014-02-05 01:04:46 +0100
committerDrahflow <drahflow@gmx.de>2014-02-05 01:04:46 +0100
commit71bf585b25e86e1c56a25dd77d9d617de558236e (patch)
tree90f72f5db6b6146d92de74c073690e771683403c
parent498d38c522ede6969875c7814f50058a4d3a5ce2 (diff)
Correctly handle empty scopes
-rw-r--r--compiler/elymasGlobal.ey13
1 files changed, 13 insertions, 0 deletions
diff --git a/compiler/elymasGlobal.ey b/compiler/elymasGlobal.ey
index 1849818..e64bc05 100644
--- a/compiler/elymasGlobal.ey
+++ b/compiler/elymasGlobal.ey
@@ -2311,6 +2311,9 @@
/rax :popqReg
8 /rax /rax :movqMemDisp8Reg
+ # rax == nametable
+ /rax /rax :testqRegReg
+ /emptyScope :jzLbl8
16 /rax /rsi :leaqMemDisp8Reg
/rsi :pushqReg
@@ -2337,6 +2340,16 @@
/r15 :pushqMem
8 /r15 :addqImm8Reg
:retn
+
+ @emptyScope
+ /rdi /rdi :xorqRegReg
+ ::internalAllocateArray /rax :movqImmReg
+ /rax :callqReg
+ /rax :pushqReg
+
+ /r15 :pushqMem
+ 8 /r15 :addqImm8Reg
+ :retn
]] /eykeys defv
> _ ==globalFunctions2 { defv }' ::allocateOffsetStruct