aboutsummaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'compiler')
-rw-r--r--compiler/elymasGlobalSysAsm.ey13
-rw-r--r--compiler/standard.ey3
2 files changed, 15 insertions, 1 deletions
diff --git a/compiler/elymasGlobalSysAsm.ey b/compiler/elymasGlobalSysAsm.ey
index 8a5499c..e9c1ad5 100644
--- a/compiler/elymasGlobalSysAsm.ey
+++ b/compiler/elymasGlobalSysAsm.ey
@@ -200,6 +200,19 @@
:retn
]] /eyrawAddress defv
+ # generate object from raw object
+ # 0 -> address of the object
+ # 0 <- object
+ [[
+ /rbx :popqReg
+
+ /rax :popqReg
+ 8 /rax :pushqMemDisp8 # push integer value
+
+ /rbx :pushqReg
+ :retn
+ ]] /eyrawObject defv
+
# get raw code execution address from function object
# 0 -> function object
# 0 <- address of first instruction
diff --git a/compiler/standard.ey b/compiler/standard.ey
index f440fb0..006414e 100644
--- a/compiler/standard.ey
+++ b/compiler/standard.ey
@@ -12,7 +12,8 @@
} "}_" defq
{
- { -01 < ==o { o -01 . } > -12 deffst }" quoted { }" { * }" ? *
+ { -01 < ==o { o -01 . } > -12 }" quoted { }" { * }" ? *
+ quoted { |deffst } { deffst }" ? *
}" /via defq
{ -1110 ; ==f =*a len _