diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2026-02-18 15:24:23 +0100 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2026-02-18 15:24:23 +0100 |
| commit | 943e24c81926f2392c341001cca69b58536c8129 (patch) | |
| tree | 4b1873fa69c75af91b33b3a384218f8a38743b1a /src/helpers/function.S | |
| parent | 2a1f31365dade481c32efc3307f94cc052d00f7f (diff) | |
| download | snake.s-943e24c81926f2392c341001cca69b58536c8129.tar.xz snake.s-943e24c81926f2392c341001cca69b58536c8129.zip | |
feat: create a simple square
Diffstat (limited to 'src/helpers/function.S')
| -rw-r--r-- | src/helpers/function.S | 12 |
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 |
