X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fmini-ia64.c;h=4cd9b377e3e2c933f1a7354396eef49194c34f3e;hb=0bcbe39b148bb498742fc68416f8293ccd350fb6;hp=aee49d44b2125b324b9770b24fa29c9ba2fe96f9;hpb=28b7a83ff63f6e40dfdbd8b222655e0f1b5d3058;p=mono.git diff --git a/mono/mini/mini-ia64.c b/mono/mini/mini-ia64.c index aee49d44b21..4cd9b377e3e 100644 --- a/mono/mini/mini-ia64.c +++ b/mono/mini/mini-ia64.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include "trace.h" #include "mini-ia64.h" @@ -2690,16 +2690,16 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb) case OP_CKFINITE: /* Quiet NaN */ ia64_fclass_m (code, 6, 7, ins->sreg1, 0x080); - emit_cond_system_exception (cfg, code, "ArithmeticException", 6); + emit_cond_system_exception (cfg, code, "OverflowException", 6); /* Signaling NaN */ ia64_fclass_m (code, 6, 7, ins->sreg1, 0x040); - emit_cond_system_exception (cfg, code, "ArithmeticException", 6); + emit_cond_system_exception (cfg, code, "OverflowException", 6); /* Positive infinity */ ia64_fclass_m (code, 6, 7, ins->sreg1, 0x021); - emit_cond_system_exception (cfg, code, "ArithmeticException", 6); + emit_cond_system_exception (cfg, code, "OverflowException", 6); /* Negative infinity */ ia64_fclass_m (code, 6, 7, ins->sreg1, 0x022); - emit_cond_system_exception (cfg, code, "ArithmeticException", 6); + emit_cond_system_exception (cfg, code, "OverflowException", 6); break; /* Calls */ @@ -3777,17 +3777,18 @@ ia64_patch (unsigned char* code, gpointer target) } void -mono_arch_patch_code (MonoCompile *cfg, MonoMethod *method, MonoDomain *domain, guint8 *code, MonoJumpInfo *ji, gboolean run_cctors) +mono_arch_patch_code (MonoCompile *cfg, MonoMethod *method, MonoDomain *domain, guint8 *code, MonoJumpInfo *ji, gboolean run_cctors, MonoError *error) { MonoJumpInfo *patch_info; + mono_error_init (error); + for (patch_info = ji; patch_info; patch_info = patch_info->next) { unsigned char *ip = patch_info->ip.i + code; const unsigned char *target; - MonoError error; - target = mono_resolve_patch_target (method, domain, code, patch_info, run_cctors, &error); - mono_error_raise_exception (&error); /* FIXME: don't raise here */ + target = mono_resolve_patch_target (method, domain, code, patch_info, run_cctors, error); + return_if_nok (error); if (patch_info->type == MONO_PATCH_INFO_NONE) continue; @@ -4531,8 +4532,8 @@ mono_arch_free_jit_tls_data (MonoJitTlsData *tls) * LOCKING: called with the domain lock held */ gpointer -mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckItem **imt_entries, int count, - gpointer fail_tramp) +mono_arch_build_imt_trampoline (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckItem **imt_entries, int count, + gpointer fail_tramp) { int i; int size = 0; @@ -4612,7 +4613,7 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI size = code.buf - buf; if (fail_tramp) { - start = mono_method_alloc_generic_virtual_thunk (domain, size + 16); + start = mono_method_alloc_generic_virtual_trampoline (domain, size + 16); start = (gpointer)ALIGN_TO (start, 16); } else { start = mono_domain_code_reserve (domain, size);