aboutsummaryrefslogtreecommitdiff
path: root/src/helpers
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2026-02-18 15:24:23 +0100
committerFelix Morgner <felix.morgner@gmail.com>2026-02-18 15:24:23 +0100
commit943e24c81926f2392c341001cca69b58536c8129 (patch)
tree4b1873fa69c75af91b33b3a384218f8a38743b1a /src/helpers
parent2a1f31365dade481c32efc3307f94cc052d00f7f (diff)
downloadsnake.s-943e24c81926f2392c341001cca69b58536c8129.tar.xz
snake.s-943e24c81926f2392c341001cca69b58536c8129.zip
feat: create a simple square
Diffstat (limited to 'src/helpers')
-rw-r--r--src/helpers/function.S12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/helpers/function.S b/src/helpers/function.S
index 5d9c155..af41905 100644
--- a/src/helpers/function.S
+++ b/src/helpers/function.S
@@ -52,6 +52,13 @@
mov \register, .L\scope\()_\name\()(%rbp)
.endm
+.macro _function_address_of_local scope, name, register
+ _function_require_locals
+ lea .L\scope\()_\name\()(%rbp), \register
+.endm
+
+
+
.macro function_begin name
_function_require_no_function
@@ -66,6 +73,10 @@
_function_allocate_local_variables \name
.endm
+ .macro address_of_local var_name, register
+ _function_address_of_local \name, \var_name, \register
+ .endm
+
.macro load_local var_name, register
_function_load_local \name, \var_name, \register
.endm
@@ -92,6 +103,7 @@
.set .L_FUNCTION_IS_IN_FUNCTION_DEFINITION, 0
.set .L_FUNCTION_LOCALS_ALLOCATED, 0
.purgem allocate_locals
+ .purgem address_of_local
.purgem function_end
.purgem function_exit
.purgem load_local