summaryrefslogtreecommitdiff
path: root/test/local.asm
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-11-08 20:01:11 -0800
committerH. Peter Anvin <hpa@zytor.com>2007-11-08 20:01:11 -0800
commit8781cb0d0054620ccc3670292fe1ab8ccb5bc1c2 (patch)
treee38d967d1017bf43d84b76a37a9f7acf510657ac /test/local.asm
parent52bd38b899ed03dee25aea931c0908354b4ae6a6 (diff)
downloadnasm-8781cb0d0054620ccc3670292fe1ab8ccb5bc1c2.tar.gz
BR 1828103: Fix %arg and %local
Correct the implementation of %arg and %local. It's questionable how much they make sense for 64-bit mode; even in 32-bit mode one normally make references off the stack pointer instead of the base pointer (frame pointer), but that requires keeping track of the stack pointer offset.
Diffstat (limited to 'test/local.asm')
-rw-r--r--test/local.asm18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/local.asm b/test/local.asm
new file mode 100644
index 00000000..64a0e59a
--- /dev/null
+++ b/test/local.asm
@@ -0,0 +1,18 @@
+ bits 32
+
+%push bluttan
+
+%define %$localsize 0
+
+%stacksize flat
+%local l1:qword, l2:dword, l3:dword, l4:qword
+%arg a1:qword, a2:dword, a3:dword, a4:qword
+
+ mov eax,[a1]
+ mov ebx,[a2]
+ mov ecx,[a3]
+ mov edx,[a4]
+ mov [l1],eax
+ mov [l2],ebx
+ mov [l3],ecx
+ mov [l4],edx