diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/alloca86-bt.S | 2 | ||||
| -rw-r--r-- | lib/alloca86_64.S | 9 |
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/alloca86-bt.S b/lib/alloca86-bt.S index 994da20..c5d5f4d 100644 --- a/lib/alloca86-bt.S +++ b/lib/alloca86-bt.S @@ -1,5 +1,5 @@ /* ---------------------------------------------- */ -/* alloca86b.S */ +/* alloca86-bt.S */ #include "../config.h" diff --git a/lib/alloca86_64.S b/lib/alloca86_64.S index 684a3e9..13c4672 100644 --- a/lib/alloca86_64.S +++ b/lib/alloca86_64.S @@ -7,13 +7,16 @@ alloca: pop %rdx +#ifdef TCC_TARGET_PE + mov %rcx,%rax +#else mov %rdi,%rax +#endif add $15,%rax and $-16,%rax jz p3 #ifdef TCC_TARGET_PE - /* XXX: not tested */ p1: cmp $4096,%rax jle p2 @@ -26,6 +29,10 @@ p2: sub %rax,%rsp mov %rsp,%rax +#ifdef TCC_TARGET_PE + add $32,%rax +#endif + p3: push %rdx ret |
