filename | src/sh4/ia32abi.h |
changeset | 956:4c1ed9e03985 |
prev | 953:f4a156508ad1 |
next | 968:6fb1481859a4 |
author | nkeynes |
date | Thu Jan 15 04:15:11 2009 +0000 (15 years ago) |
permissions | -rw-r--r-- |
last change | Add support for the Intel ICC compiler (C only, icc doesn't support Obj-C) - Rename Obj-C source to .m - Separate paths.c into paths_unix.c and paths_osx.m - Add configuration detection of ICC, along with specific opt flags |
file | annotate | diff | log | raw |
1.1 --- a/src/sh4/ia32abi.h Tue Jan 13 11:56:28 2009 +00001.2 +++ b/src/sh4/ia32abi.h Thu Jan 15 04:15:11 2009 +00001.3 @@ -266,6 +266,28 @@1.4 }1.6 /**1.7 + * Exit unconditionally with a general exception1.8 + */1.9 +void exit_block_exc( int code, sh4addr_t pc )1.10 +{1.11 + load_imm32( R_ECX, pc - sh4_x86.block_start_pc ); // 51.12 + ADD_r32_sh4r( R_ECX, R_PC );1.13 + load_imm32( R_ECX, ((pc - sh4_x86.block_start_pc)>>1)*sh4_cpu_period ); // 51.14 + ADD_r32_sh4r( R_ECX, REG_OFFSET(slice_cycle) ); // 61.15 + load_imm32( R_EAX, code );1.16 + call_func1( sh4_raise_exception, R_EAX );1.17 +1.18 + load_spreg( R_EAX, R_PC );1.19 + if( sh4_x86.tlb_on ) {1.20 + call_func1(xlat_get_code_by_vma,R_EAX);1.21 + } else {1.22 + call_func1(xlat_get_code,R_EAX);1.23 + }1.24 +1.25 + exit_block();1.26 +}1.27 +1.28 +/**1.29 * Write the block trailer (exception handling block)1.30 */1.31 void sh4_translate_end_block( sh4addr_t pc ) {
.