diff options
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/elymasGlobal.ey | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/compiler/elymasGlobal.ey b/compiler/elymasGlobal.ey index 83d4d63..bf34103 100644 --- a/compiler/elymasGlobal.ey +++ b/compiler/elymasGlobal.ey @@ -19,6 +19,12 @@ 2 ==QUOTEMARKER < + [ + %08 %00 %00 %00 %00 %00 %00 %70 + ] /emptyArray defv + > { defv }' ::allocateOffsetStruct + + < # do nothing [ :retn @@ -671,6 +677,7 @@ /rdi /rcx :movqRegReg /rsp /rdi :subqRegReg + /empty :jzLbl8 /rcx :pushqReg # rdi == size of array @@ -683,16 +690,20 @@ /rax /ecx :movlMemReg 3 /rcx :shrqImm8Reg /rcx :decqReg # rcx == number of array elements - /rcx /rcx :testqRegReg - /empty :jzLbl8 8 /rcx /rax /rax :leaqMemIndexScaleReg # rax == address of last cell @copy /rax :popqMem 8 /rax :subqImm8Reg /copy :loopLbl8 + /r15 :pushqMem + 8 /r15 :addqImm8Reg + :retn @empty + emptyArray /rax :movqImmReg + /rax /rcx :movqRegMem # store array pointer instead of begin marker + /r15 :pushqMem 8 /r15 :addqImm8Reg :retn |
