summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2015-01-01 22:03:44 +0000
committerDamien George <damien.p.george@gmail.com>2015-01-01 22:03:44 +0000
commit872a82970d0caa97ed5e7751d6d7b6a29b8d4fce (patch)
tree7f9966e38d6acb3d320d9bfb507a4e36901a632e
parent8a2347723eba9899a12799021b4e47bd1fa20282 (diff)
downloadmicropython-872a82970d0caa97ed5e7751d6d7b6a29b8d4fce.tar.gz
micropython-872a82970d0caa97ed5e7751d6d7b6a29b8d4fce.zip
py: Fix windows external name error for nlr_top.
-rw-r--r--py/nlrx86.S18
1 files changed, 12 insertions, 6 deletions
diff --git a/py/nlrx86.S b/py/nlrx86.S
index 7d12d38933..34d0bfc4ef 100644
--- a/py/nlrx86.S
+++ b/py/nlrx86.S
@@ -32,6 +32,12 @@
// For reference, x86 callee save regs are:
// ebx, esi, edi, ebp, esp, eip
+#ifdef _WIN32
+#define NLR_TOP _nlr_top
+#else
+#define NLR_TOP nlr_top
+#endif
+
.file "nlr.s"
.text
@@ -55,9 +61,9 @@ nlr_push:
mov %ebx, 20(%edx) # store %bx into nlr_buf+20
mov %edi, 24(%edx) # store %di into nlr_buf
mov %esi, 28(%edx) # store %si into nlr_buf
- mov nlr_top, %eax # load nlr_top
+ mov NLR_TOP, %eax # load nlr_top
mov %eax, (%edx) # store it
- mov %edx, nlr_top # stor new nlr_buf (to make linked list)
+ mov %edx, NLR_TOP # stor new nlr_buf (to make linked list)
xor %eax, %eax # return 0, normal return
ret # return
#ifndef _WIN32
@@ -76,9 +82,9 @@ _nlr_pop:
.type nlr_pop, @function
nlr_pop:
#endif
- mov nlr_top, %eax # load nlr_top
+ mov NLR_TOP, %eax # load nlr_top
mov (%eax), %eax # load prev nlr_buf
- mov %eax, nlr_top # store nlr_top (to unlink list)
+ mov %eax, NLR_TOP # store nlr_top (to unlink list)
ret # return
#ifndef _WIN32
.size nlr_pop, .-nlr_pop
@@ -96,7 +102,7 @@ _nlr_jump:
.type nlr_jump, @function
nlr_jump:
#endif
- mov nlr_top, %edx # load nlr_top
+ mov NLR_TOP, %edx # load nlr_top
test %edx, %edx # check for nlr_top being NULL
#ifdef _WIN32
je _nlr_jump_fail # fail if nlr_top is NULL
@@ -106,7 +112,7 @@ nlr_jump:
mov 4(%esp), %eax # load return value
mov %eax, 4(%edx) # store return value
mov (%edx), %eax # load prev nlr_top
- mov %eax, nlr_top # store nlr_top (to unlink list)
+ mov %eax, NLR_TOP # store nlr_top (to unlink list)
mov 28(%edx), %esi # load saved %si
mov 24(%edx), %edi # load saved %di
mov 20(%edx), %ebx # load saved %bx