aboutsummaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorDrahflow <drahflow@gmx.de>2014-03-06 13:42:55 +0100
committerDrahflow <drahflow@gmx.de>2014-03-06 13:42:55 +0100
commitee08bcf48cb6221295ae4b8663317a5320a6450b (patch)
tree255e8720fa43c3d56969edeaabb7d2632ca41ee0 /compiler
parent2b3456f8ec1150318430bf71d9af04ff3311e32c (diff)
Tested *-based coroutines
Diffstat (limited to 'compiler')
-rw-r--r--compiler/elymasGlobal.ey6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/elymasGlobal.ey b/compiler/elymasGlobal.ey
index 2e1f8f6..e8c419a 100644
--- a/compiler/elymasGlobal.ey
+++ b/compiler/elymasGlobal.ey
@@ -2629,6 +2629,8 @@
24 /r13 /rax :movqMemDisp8Reg
/r15 8 /rax :movqRegMemDisp8
32 /r13 /rax :movqMemDisp8Reg
+ /rax /rax :testqRegReg
+ /sourceDataStackMissing :jzLbl8
/rsp 8 /rax :movqRegMemDisp8
# exclude source opcodes from being optimized away
@@ -2673,6 +2675,10 @@
/rbx :pushqReg
/rax :movqImmOOBReg "ey!" "ey." ::linkAbs64
/rax :jmpqReg
+
+ @sourceDataStackMissing
+ "cannot leave coroutine with ! which was entered by * (missing own stack)" ::outputError
+ :ud2
]] /ey! defv
> _ ==globalFunctions3 { defv }' ::allocateOffsetStruct