aboutsummaryrefslogtreecommitdiff
path: root/compiler/elymasGlobalSysOpt.ey
diff options
context:
space:
mode:
authorDrahflow <drahflow@gmx.de>2013-09-29 13:19:43 +0200
committerDrahflow <drahflow@gmx.de>2013-09-29 13:19:43 +0200
commitcd680c6d4bb37213e1dbe0df5c87c6f8ea1b04eb (patch)
treebca90cab67661191273ae9f446c843b4bc4682b1 /compiler/elymasGlobalSysOpt.ey
parent6654eba47e84a08864605065fd90bb65730516b4 (diff)
13% faster with (some) inline arithmetics
Diffstat (limited to 'compiler/elymasGlobalSysOpt.ey')
-rw-r--r--compiler/elymasGlobalSysOpt.ey16
1 files changed, 16 insertions, 0 deletions
diff --git a/compiler/elymasGlobalSysOpt.ey b/compiler/elymasGlobalSysOpt.ey
index b3128bf..49d9282 100644
--- a/compiler/elymasGlobalSysOpt.ey
+++ b/compiler/elymasGlobalSysOpt.ey
@@ -104,6 +104,22 @@
:retn
]] /eyreplace defv
+ # returns internalAllocateInteger into userspace
+ # 0 <- ::internalAllocateInteger as integer
+ [[
+ /rbx :popqReg
+
+ ::internalAllocateInteger /rax :movqImmReg
+ /rax :callqReg
+ /rax :pushqReg
+
+ ::internalAllocateInteger /rdx :movqImmReg
+ /rdx 8 /rax :movqRegMemDisp8
+
+ /rbx :pushqReg
+ :retn
+ ]] /eyinternalAllocateInteger defv
+
# returns internalAllocateScope into userspace
# 0 <- ::internalAllocateScope as integer
[[