aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrahflow <drahflow@gmx.de>2014-03-07 03:00:00 +0100
committerDrahflow <drahflow@gmx.de>2014-03-07 03:00:00 +0100
commit08fb5ab0d295cab79d5d65e9dba7976b797e0348 (patch)
tree88e9364644c1e6e3573fcbc13f579638e9047b44
parentee08bcf48cb6221295ae4b8663317a5320a6450b (diff)
Testcases (and some code) for #.=
-rw-r--r--compiler/elymasGlobal.ey27
-rw-r--r--examples/working-compiler/undefined-resolution.test13
2 files changed, 30 insertions, 10 deletions
diff --git a/compiler/elymasGlobal.ey b/compiler/elymasGlobal.ey
index e8c419a..360758d 100644
--- a/compiler/elymasGlobal.ey
+++ b/compiler/elymasGlobal.ey
@@ -41,11 +41,14 @@
/rax /rax :testqRegReg
/found :jnzLbl8
- "unresolved name in |: " ::outputError
- /rbx /rdi :movqRegReg
- ::internalDumpErrorString /rax :movqImmReg
- /rax :callqReg
- :ud2
+ /rcx :popqReg
+ /rbx :pushqReg
+ /r14 :pushqReg
+ /rax :movqImmOOBReg "#.|" ::string
+ /rax :pushqReg
+ /rax :movqImmOOBReg "ey|" "ey." ::linkAbs64
+ /rcx :pushqReg
+ /rax :jmpqReg
@found
/rcx :popqReg
@@ -325,11 +328,15 @@
/rax /rax :testqRegReg
/found :jnzLbl8
- "unresolved name in =: " ::outputError
- /rbx /rdi :movqRegReg
- ::internalDumpErrorString /rax :movqImmReg
- /rax :callqReg
- :ud2
+ /rbx :pushqReg
+ /r14 :pushqReg
+ /rax :movqImmOOBReg "#.=" ::string
+ /rax :pushqReg
+ /rax :movqImmOOBReg "ey=" "ey." ::linkAbs64
+
+ /r15 :pushqMem
+ 8 /r15 :addqImm8Reg
+ /rax :jmpqReg
@found
/rcx :popqMem
diff --git a/examples/working-compiler/undefined-resolution.test b/examples/working-compiler/undefined-resolution.test
new file mode 100644
index 0000000..6465d47
--- /dev/null
+++ b/examples/working-compiler/undefined-resolution.test
@@ -0,0 +1,13 @@
+<
+ { "#." dump dump } "#." deffd
+ { "#.|" dump dump } "#.|" deffd
+ { "#.?" dump dump } "#.?" deffd
+ { "#.=" dump dump dump } "#.=" deffd
+> ==s
+
+< { |pipebare } =*f s >' .f
+< { 42 =equalbare } =*f s >' .f
+s .|dotpipe
+s .?dotquestion
+s .dot
+< { bare } =*f s >' .f