filename | src/sh4/ia64abi.h |
changeset | 596:dfc0c93d882e |
prev | 590:4db6a084ca3c |
next | 599:2a73a1a53032 |
author | nkeynes |
date | Mon Jan 21 11:59:46 2008 +0000 (16 years ago) |
permissions | -rw-r--r-- |
last change | Fix MAC.L/MAC.W stack issues Fix various recovery-table issues |
file | annotate | diff | log | raw |
1.1 --- a/src/sh4/ia64abi.h Wed Jan 16 09:39:16 2008 +00001.2 +++ b/src/sh4/ia64abi.h Mon Jan 21 11:59:46 2008 +00001.3 @@ -239,8 +239,12 @@1.4 for( i=0; i< sh4_x86.backpatch_posn; i++ ) {1.5 *sh4_x86.backpatch_list[i].fixup_addr =1.6 xlat_output - ((uint8_t *)sh4_x86.backpatch_list[i].fixup_addr) - 4;1.7 - if( sh4_x86.backpatch_list[i].exc_code == -1 ) {1.8 + if( sh4_x86.backpatch_list[i].exc_code < 0 ) {1.9 load_imm32( R_EDX, sh4_x86.backpatch_list[i].fixup_icount );1.10 + int stack_adj = -1 - sh4_x86.backpatch_list[i].exc_code;1.11 + if( stack_adj > 0 ) {1.12 + ADD_imm8s_r32( stack_adj, R_ESP );1.13 + }1.14 int rel = preexc_ptr - xlat_output;1.15 JMP_rel(rel);1.16 } else {
.