aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/alloca86-bt.S4
-rw-r--r--lib/alloca86.S4
-rw-r--r--lib/alloca86_64.S4
3 files changed, 6 insertions, 6 deletions
diff --git a/lib/alloca86-bt.S b/lib/alloca86-bt.S
index ffad515..ff07bbb 100644
--- a/lib/alloca86-bt.S
+++ b/lib/alloca86-bt.S
@@ -14,10 +14,10 @@ __bound_alloca:
#ifdef TCC_TARGET_PE
p4:
cmp $4096,%eax
- jle p5
+ jb p5
+ test %eax,-4096(%esp)
sub $4096,%esp
sub $4096,%eax
- test %eax,(%esp)
jmp p4
p5:
diff --git a/lib/alloca86.S b/lib/alloca86.S
index b836efb..5bb38b1 100644
--- a/lib/alloca86.S
+++ b/lib/alloca86.S
@@ -13,10 +13,10 @@ alloca:
#ifdef TCC_TARGET_PE
p1:
cmp $4096,%eax
- jle p2
+ jb p2
+ test %eax,-4096(%esp)
sub $4096,%esp
sub $4096,%eax
- test %eax,(%esp)
jmp p1
p2:
#endif
diff --git a/lib/alloca86_64.S b/lib/alloca86_64.S
index dd46ce6..51acd42 100644
--- a/lib/alloca86_64.S
+++ b/lib/alloca86_64.S
@@ -17,10 +17,10 @@ alloca:
#ifdef TCC_TARGET_PE
p1:
cmp $4096,%rax
- jle p2
+ jb p2
+ test %rax,-4096(%rsp)
sub $4096,%rsp
sub $4096,%rax
- test %rax,(%rsp)
jmp p1
p2:
#endif