Remove the MonoGenericContext/MonoMethod arguments from the get_this_arg () and get_u...
authorZoltan Varga <vargaz@gmail.com>
Thu, 7 Oct 2010 10:01:24 +0000 (12:01 +0200)
committerZoltan Varga <vargaz@gmail.com>
Thu, 7 Oct 2010 10:01:24 +0000 (12:01 +0200)
20 files changed:
mono/mini/aot-compiler.c
mono/mini/mini-amd64.c
mono/mini/mini-arm.c
mono/mini/mini-ia64.c
mono/mini/mini-mips.c
mono/mini/mini-ppc.c
mono/mini/mini-s390x.c
mono/mini/mini-sparc.c
mono/mini/mini-trampolines.c
mono/mini/mini-x86.c
mono/mini/mini.h
mono/mini/tramp-amd64.c
mono/mini/tramp-arm.c
mono/mini/tramp-ia64.c
mono/mini/tramp-mips.c
mono/mini/tramp-ppc.c
mono/mini/tramp-s390.c
mono/mini/tramp-s390x.c
mono/mini/tramp-sparc.c
mono/mini/tramp-x86.c

index dcc8da17072f5af7d3cf250a0e7f06391367eb14..0e486e5cd25fbd79c2a1259fc8c6d6761106f71e 100644 (file)
@@ -895,14 +895,14 @@ arch_emit_specific_trampoline (MonoAotCompile *acfg, int offset, int *tramp_size
  * CALL_TARGET is the symbol pointing to the native code of METHOD.
  */
 static void
-arch_emit_unbox_trampoline (MonoAotCompile *acfg, MonoMethod *method, MonoGenericSharingContext *gsctx, const char *call_target)
+arch_emit_unbox_trampoline (MonoAotCompile *acfg, MonoMethod *method, const char *call_target)
 {
 #if defined(TARGET_AMD64)
        guint8 buf [32];
        guint8 *code;
        int this_reg;
 
-       this_reg = mono_arch_get_this_arg_reg (mono_method_signature (method), gsctx, NULL);
+       this_reg = mono_arch_get_this_arg_reg (NULL);
        code = buf;
        amd64_alu_reg_imm (code, X86_ADD, this_reg, sizeof (MonoObject));
 
@@ -4891,7 +4891,7 @@ emit_code (MonoAotCompile *acfg)
 
                        sprintf (call_target, "%s", cfg->asm_symbol);
 
-                       arch_emit_unbox_trampoline (acfg, cfg->orig_method, cfg->generic_sharing_context, call_target);
+                       arch_emit_unbox_trampoline (acfg, cfg->orig_method, call_target);
                }
 
                if (cfg->compile_llvm)
index 174d5d2e90e83b287b221b69bf4bad9761d5ab6a..8a1f21aeb2fb15196d1f604648548971c8f7e61f 100644 (file)
@@ -6987,15 +6987,15 @@ mono_breakpoint_clean_code (guint8 *method_start, guint8 *code, int offset, guin
 }
 
 int
-mono_arch_get_this_arg_reg (MonoMethodSignature *sig, MonoGenericSharingContext *gsctx, guint8 *code)
+mono_arch_get_this_arg_reg (guint8 *code)
 {
        return AMD64_ARG_REG1;
 }
 
 gpointer
-mono_arch_get_this_arg_from_call (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, mgreg_t *regs, guint8 *code)
+mono_arch_get_this_arg_from_call (mgreg_t *regs, guint8 *code)
 {
-       return (gpointer)regs [mono_arch_get_this_arg_reg (sig, gsctx, code)];
+       return (gpointer)regs [mono_arch_get_this_arg_reg (code)];
 }
 
 #define MAX_ARCH_DELEGATE_PARAMS 10
index f030e4abf587e0963ed3ada54e618da0f3fcdd4e..0454997f72cf09aa6a2f2e6ad4601630b49ece00 100644 (file)
@@ -430,7 +430,7 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
 }
 
 gpointer
-mono_arch_get_this_arg_from_call (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, mgreg_t *regs, guint8 *code)
+mono_arch_get_this_arg_from_call (mgreg_t *regs, guint8 *code)
 {
        return (gpointer)regs [ARMREG_R0];
 }
index 8c9f7252e83ceafb5e7229804541139eb9be424c..8bf2379b942a7f707c6c3458953f78543e8b7abd 100644 (file)
@@ -436,6 +436,7 @@ get_call_info (MonoCompile *cfg, MonoMemPool *mp, MonoMethodSignature *sig, gboo
         * IA64 has MONO_ARCH_THIS_AS_FIRST_ARG defined, but we don't need to really pass
         * this as first, because this is stored in a non-stacked register by the calling
         * sequence.
+        * FIXME: mono_arch_get_unbox_trampoline () depends on this.
         */
 
        /* this */
@@ -2726,7 +2727,7 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        int out_reg;
 
                        /* 
-                        * mono_arch_find_this_arg () needs to find the this argument in a global 
+                        * mono_arch_get_this_arg_from_call () needs to find the this argument in a global 
                         * register.
                         */
                        cinfo = get_call_info (cfg, cfg->mempool, call->signature, FALSE);
@@ -4630,7 +4631,7 @@ mono_arch_emit_imt_argument (MonoCompile *cfg, MonoCallInst *call, MonoInst *imt
 #endif
 
 gpointer
-mono_arch_get_this_arg_from_call (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, mgreg_t *regs, guint8 *code)
+mono_arch_get_this_arg_from_call (mgreg_t *regs, guint8 *code)
 {
        return (gpointer)regs [IA64_R10];
 }
index 262d9483df3ce5ff8888ee0f1f81815c0ae04ae4..a13b5754c3ffe420be394a9796c6775241720ee6 100644 (file)
@@ -517,12 +517,9 @@ mono_arch_get_argument_info (MonoMethodSignature *csig, int param_count, MonoJit
 
 
 gpointer
-mono_arch_get_this_arg_from_call (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, mgreg_t *regs, guint8 *code)
+mono_arch_get_this_arg_from_call (mgreg_t *regs, guint8 *code)
 {
-       /* FIXME: handle returning a struct */
        g_assert(regs);
-       if (sig && MONO_TYPE_ISSTRUCT (sig->ret))
-               return (gpointer)regs [mips_a1];
        return (gpointer)regs [mips_a0];
 }
 
index 8a8296f3bafc2904ebb905c1c9aeca7d7b352251..dc169c6adde7d9a17b61eca57ee888ceef9bb1d1 100755 (executable)
@@ -508,7 +508,7 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
 }
 
 gpointer
-mono_arch_get_this_arg_from_call (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, mgreg_t *regs, guint8 *code)
+mono_arch_get_this_arg_from_call (mgreg_t *regs, guint8 *code)
 {
        mgreg_t *r = (mgreg_t*)regs;
 
index cd0f37fef5c92fe741e4027de40fcda352e95725..607ff530b9db33c40af6c622159a111aafb1154f 100644 (file)
@@ -5645,11 +5645,10 @@ mono_arch_context_get_int_reg (MonoContext *ctx, int reg)
 /*------------------------------------------------------------------*/
 
 gpointer
-mono_arch_get_this_arg_from_call (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, mgreg_t *regs, guint8 *code)
+mono_arch_get_this_arg_from_call (mgreg_t *regs, guint8 *code)
 {
        MonoLMF *lmf = (MonoLMF *) ((gchar *) regs - sizeof(MonoLMF));
 
-       /* FIXME: handle returning a struct */
        return (gpointer) lmf->gregs [s390_r2];
 }
 
@@ -5979,20 +5978,3 @@ mono_arch_find_imt_method (mgreg_t *regs, guint8 *code)
 }
 
 /*========================= End of Function ========================*/
-
-/*------------------------------------------------------------------*/
-/*                                                                  */
-/* Name                - mono_arch_find_this_argument.                     */
-/*                                                                  */
-/* Function    -                                                   */
-/*                                                                 */
-/*------------------------------------------------------------------*/
-
-MonoObject *
-mono_arch_find_this_argument (mgreg_t *regs, MonoMethod *method, 
-                             MonoGenericSharingContext *gsctx)
-{
-        return mono_arch_get_this_arg_from_call (gsctx, mono_method_signature (method), regs, NULL);
-}  
-
-/*========================= End of Function ========================*/
index 880612013cab77d0135654da13d688eb15b9fb9e..2151bab2aaff921bee4644878f24d33735fa281f 100644 (file)
@@ -2377,7 +2377,7 @@ mono_arch_find_imt_method (mgreg_t *regs, guint8 *code)
 }
 
 gpointer
-mono_arch_get_this_arg_from_call (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, mgreg_t *regs, guint8 *code)
+mono_arch_get_this_arg_from_call (mgreg_t *regs, guint8 *code)
 {
        mono_sparc_flushw ();
 
index f20a208f21c2ee9264f3b279523e6d50f3045843..d97f0b317da15d2c1355a473d3a252d6e79560ee 100644 (file)
@@ -28,7 +28,7 @@ static guint32 trampoline_calls, jit_trampolines, unbox_trampolines, static_rgct
 static CRITICAL_SECTION trampolines_mutex;
 
 static gpointer
-get_unbox_trampoline (MonoGenericSharingContext *gsctx, MonoMethod *m, gpointer addr, gboolean need_rgctx_tramp)
+get_unbox_trampoline (MonoMethod *m, gpointer addr, gboolean need_rgctx_tramp)
 {
        if (mono_aot_only) {
                if (need_rgctx_tramp)
@@ -41,7 +41,7 @@ get_unbox_trampoline (MonoGenericSharingContext *gsctx, MonoMethod *m, gpointer
                        return mono_aot_get_unbox_trampoline (m);
        } else {
                unbox_trampolines ++;
-               return mono_arch_get_unbox_trampoline (gsctx, m, addr);
+               return mono_arch_get_unbox_trampoline (m, addr);
        }
 }
 
@@ -158,7 +158,7 @@ mono_create_static_rgctx_trampoline (MonoMethod *m, gpointer addr)
 static gpointer*
 mono_convert_imt_slot_to_vtable_slot (gpointer* slot, mgreg_t *regs, guint8 *code, MonoMethod *method, MonoMethod **impl_method, gboolean *need_rgctx_tramp, gboolean *variance_used, gpointer *aot_addr)
 {
-       MonoObject *this_argument = mono_arch_get_this_arg_from_call (NULL, mono_method_signature (method), regs, code);
+       MonoObject *this_argument = mono_arch_get_this_arg_from_call (regs, code);
        MonoVTable *vt = this_argument->vtable;
        int displacement = slot - ((gpointer*)vt);
 
@@ -301,7 +301,7 @@ common_call_trampoline (mgreg_t *regs, guint8 *code, MonoMethod *m, guint8* tram
                vtable_slot = orig_vtable_slot;
                g_assert (vtable_slot);
 
-               this_arg = mono_arch_get_this_arg_from_call (NULL, mono_method_signature (m), regs, code);
+               this_arg = mono_arch_get_this_arg_from_call (regs, code);
 
                if (this_arg->vtable->klass == mono_defaults.transparent_proxy_class) {
                        /* Use the slow path for now */
@@ -399,7 +399,7 @@ common_call_trampoline (mgreg_t *regs, guint8 *code, MonoMethod *m, guint8* tram
 #endif
                } else {
 #ifdef MONO_ARCH_HAVE_IMT
-                       MonoObject *this_argument = mono_arch_get_this_arg_from_call (NULL, mono_method_signature (m), regs, code);
+                       MonoObject *this_argument = mono_arch_get_this_arg_from_call (regs, code);
 
                        vt = this_argument->vtable;
                        vtable_slot = orig_vtable_slot;
@@ -489,7 +489,7 @@ common_call_trampoline (mgreg_t *regs, guint8 *code, MonoMethod *m, guint8* tram
                g_assert (vtable_slot);
 
                if (vt->klass->valuetype) /*FIXME is this required variant iface?*/
-                       addr = get_unbox_trampoline (mono_get_generic_context_from_code (code), m, addr, need_rgctx_tramp);
+                       addr = get_unbox_trampoline (m, addr, need_rgctx_tramp);
 
                mono_method_add_generic_virtual_invocation (mono_domain_get (), 
                                                                                                        vt, vtable_slot,
@@ -530,7 +530,7 @@ common_call_trampoline (mgreg_t *regs, guint8 *code, MonoMethod *m, guint8* tram
 
        if (vtable_slot) {
                if (m->klass->valuetype)
-                       addr = get_unbox_trampoline (mono_get_generic_context_from_code (code), m, addr, need_rgctx_tramp);
+                       addr = get_unbox_trampoline (m, addr, need_rgctx_tramp);
 
                if (vtable_slot_to_patch && (mono_aot_is_got_entry (code, (guint8*)vtable_slot_to_patch) || mono_domain_owns_vtable_slot (mono_domain_get (), vtable_slot_to_patch))) {
                        g_assert (*vtable_slot_to_patch);
@@ -611,7 +611,7 @@ mono_vcall_trampoline (mgreg_t *regs, guint8 *code, int slot, guint8 *tramp)
        /*
         * Obtain the vtable from the 'this' arg.
         */
-       this = mono_arch_get_this_arg_from_call (NULL, NULL, regs, code);
+       this = mono_arch_get_this_arg_from_call (regs, code);
        g_assert (this);
 
        vt = this->vtable;
@@ -867,12 +867,7 @@ mono_delegate_trampoline (mgreg_t *regs, guint8 *code, gpointer *tramp_data, gui
        trampoline_calls ++;
 
        /* Obtain the delegate object according to the calling convention */
-
-       /* 
-        * Avoid calling mono_get_generic_context_from_code () now since it is expensive, 
-        * get_this_arg_from_call will call it if needed.
-        */
-       delegate = mono_arch_get_this_arg_from_call (NULL, mono_method_signature (invoke), regs, code);
+       delegate = mono_arch_get_this_arg_from_call (regs, code);
 
        if (delegate->method) {
                method = delegate->method;
index 11e895bb9e11e736fca0d5df6f75daf694d3dcc6..551aa4fc7877a8989a1596bc26fbad80048eeea8 100644 (file)
@@ -5718,8 +5718,7 @@ mono_x86_get_this_arg_offset (MonoGenericSharingContext *gsctx, MonoMethodSignat
 }
 
 gpointer
-mono_arch_get_this_arg_from_call (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig,
-               mgreg_t *regs, guint8 *code)
+mono_arch_get_this_arg_from_call (mgreg_t *regs, guint8 *code)
 {
        guint32 esp = regs [X86_ESP];
        CallInfo *cinfo = NULL;
index 21a9eec5702990464823889207c5ac12afeb0d7b..8d4f06f09050b0a273685b66008c8219d40bb46b 100644 (file)
@@ -1867,15 +1867,15 @@ gpointer*mono_arch_get_delegate_method_ptr_addr (guint8* code, mgreg_t *regs) MO
 void     mono_arch_create_vars                  (MonoCompile *cfg) MONO_INTERNAL;
 void     mono_arch_save_unwind_info             (MonoCompile *cfg) MONO_INTERNAL;
 void     mono_arch_register_lowlevel_calls      (void) MONO_INTERNAL;
-gpointer mono_arch_get_unbox_trampoline         (MonoGenericSharingContext *gsctx, MonoMethod *m, gpointer addr) MONO_INTERNAL;
+gpointer mono_arch_get_unbox_trampoline         (MonoMethod *m, gpointer addr) MONO_INTERNAL;
 gpointer mono_arch_get_static_rgctx_trampoline  (MonoMethod *m, MonoMethodRuntimeGenericContext *mrgctx, gpointer addr) MONO_INTERNAL;
 gpointer  mono_arch_get_llvm_imt_trampoline     (MonoDomain *domain, MonoMethod *method, int vt_offset) MONO_INTERNAL;
 void     mono_arch_patch_callsite               (guint8 *method_start, guint8 *code, guint8 *addr) MONO_INTERNAL;
 void     mono_arch_patch_plt_entry              (guint8 *code, gpointer *got, mgreg_t *regs, guint8 *addr) MONO_INTERNAL;
 void     mono_arch_nullify_class_init_trampoline(guint8 *code, mgreg_t *regs) MONO_INTERNAL;
 void     mono_arch_nullify_plt_entry            (guint8 *code, mgreg_t *regs) MONO_INTERNAL;
-int      mono_arch_get_this_arg_reg             (MonoMethodSignature *sig, MonoGenericSharingContext *gsctx, guint8 *code) MONO_INTERNAL;
-gpointer mono_arch_get_this_arg_from_call       (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, mgreg_t *regs, guint8 *code) MONO_INTERNAL;
+int      mono_arch_get_this_arg_reg             (guint8 *code) MONO_INTERNAL;
+gpointer mono_arch_get_this_arg_from_call       (mgreg_t *regs, guint8 *code) MONO_INTERNAL;
 gpointer mono_arch_get_delegate_invoke_impl     (MonoMethodSignature *sig, gboolean has_target) MONO_INTERNAL;
 gpointer mono_arch_create_specific_trampoline   (gpointer arg1, MonoTrampolineType tramp_type, MonoDomain *domain, guint32 *code_len) MONO_INTERNAL;
 void        mono_arch_emit_imt_argument         (MonoCompile *cfg, MonoCallInst *call, MonoInst *imt_arg) MONO_INTERNAL;
index 2fc0b91ab99dffafff3555a3bf405923c8c929ca..80d0936031347aa52505fe00c2dc693608149d39 100644 (file)
@@ -31,7 +31,6 @@ static guint8* nullified_class_init_trampoline;
 
 /*
  * mono_arch_get_unbox_trampoline:
- * @gsctx: the generic sharing context
  * @m: method pointer
  * @addr: pointer to native code for @m
  *
@@ -40,14 +39,14 @@ static guint8* nullified_class_init_trampoline;
  * unboxing before calling the method
  */
 gpointer
-mono_arch_get_unbox_trampoline (MonoGenericSharingContext *gsctx, MonoMethod *m, gpointer addr)
+mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
 {
        guint8 *code, *start;
        int this_reg;
 
        MonoDomain *domain = mono_domain_get ();
 
-       this_reg = mono_arch_get_this_arg_reg (mono_method_signature (m), gsctx, NULL);
+       this_reg = mono_arch_get_this_arg_reg (NULL);
 
        start = code = mono_domain_code_reserve (domain, 20);
 
@@ -107,7 +106,7 @@ mono_arch_get_llvm_imt_trampoline (MonoDomain *domain, MonoMethod *m, int vt_off
 
        start = code = mono_domain_code_reserve (domain, buf_len);
 
-       this_reg = mono_arch_get_this_arg_reg (mono_method_signature (m), NULL, NULL);
+       this_reg = mono_arch_get_this_arg_reg (NULL);
 
        /* Set imt arg */
        amd64_mov_reg_imm (code, MONO_ARCH_IMT_REG, m);
index 38a081124ac8bbe97af6eb5614ea5897f63a9ff0..de25b412c7df96ec244a80d0f18f6a14289de3cc 100644 (file)
@@ -428,7 +428,6 @@ mono_arch_create_specific_trampoline (gpointer arg1, MonoTrampolineType tramp_ty
 
 /*
  * mono_arch_get_unbox_trampoline:
- * @gsctx: the generic sharing context
  * @m: method pointer
  * @addr: pointer to native code for @m
  *
@@ -437,7 +436,7 @@ mono_arch_create_specific_trampoline (gpointer arg1, MonoTrampolineType tramp_ty
  * unboxing before calling the method
  */
 gpointer
-mono_arch_get_unbox_trampoline (MonoGenericSharingContext *gsctx, MonoMethod *m, gpointer addr)
+mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
 {
        guint8 *code, *start;
        MonoDomain *domain = mono_domain_get ();
@@ -682,7 +681,7 @@ mono_arch_create_specific_trampoline (gpointer arg1, MonoTrampolineType tramp_ty
 }
 
 gpointer
-mono_arch_get_unbox_trampoline (MonoGenericSharingContext *gsctx, MonoMethod *m, gpointer addr)
+mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
 {
        g_assert_not_reached ();
        return NULL;
index 6a2dc90a303c4cc01d42ed191ab423878f0344dd..29144b9c08b7a74d15acf2c8441f44903df90e06 100644 (file)
@@ -24,7 +24,6 @@
 
 /*
  * mono_arch_get_unbox_trampoline:
- * @gsctx: the generic sharing context
  * @m: method pointer
  * @addr: pointer to native code for @m
  *
@@ -33,7 +32,7 @@
  * unboxing before calling the method
  */
 gpointer
-mono_arch_get_unbox_trampoline (MonoGenericSharingContext *gsctx, MonoMethod *m, gpointer addr)
+mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
 {
        guint8 *buf;
        gpointer func_addr, func_gp;
index 21557ee3768afc2976ba56ccd8cca0d9380a9336..f124a4bcbf7f65937c00db4c4455db7131fa9f93 100644 (file)
@@ -28,7 +28,6 @@ static guint8* nullified_class_init_trampoline;
 
 /*
  * get_unbox_trampoline:
- * @gsctx: the generic sharing context
  * @m: method pointer
  * @addr: pointer to native code for @m
  *
@@ -37,7 +36,7 @@ static guint8* nullified_class_init_trampoline;
  * unboxing before calling the method
  */
 gpointer
-mono_arch_get_unbox_trampoline (MonoGenericSharingContext *gsctx, MonoMethod *m, gpointer addr)
+mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
 {
        guint8 *code, *start;
        int this_pos = mips_a0;
index 8021952abd84409823647c82b6ec1171a104acb0..2972348d09ed7103f088f375cf8c8618d5d23fe3 100644 (file)
@@ -63,7 +63,6 @@ branch_for_target_reachable (guint8 *branch, guint8 *target)
 
 /*
  * get_unbox_trampoline:
- * @gsctx: the generic sharing context
  * @m: method pointer
  * @addr: pointer to native code for @m
  *
@@ -72,7 +71,7 @@ branch_for_target_reachable (guint8 *branch, guint8 *target)
  * unboxing before calling the method
  */
 gpointer
-mono_arch_get_unbox_trampoline (MonoGenericSharingContext *gsctx, MonoMethod *m, gpointer addr)
+mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
 {
        guint8 *code, *start;
        int this_pos = 3;
index 3f7eb404708a9fbcc052ab98a32a1ea006226da8..284e419751839252880a9870107a6cd37ecccf6c 100644 (file)
 /*                When value type methods are called through the    */
 /*               vtable we need to unbox the 'this' argument.      */
 /*                                                                 */
-/* Parameters   - gsctx  - Generic sharing context                 */
-/*                method - Methd pointer                           */
+/* Parameters   - method - Methd pointer                           */
 /*               addr   - Pointer to native code for method        */
 /*                                                                 */
 /*------------------------------------------------------------------*/
 
 gpointer
-mono_arch_get_unbox_trampoline (MonoGenericSharingContext *gsctx, MonoMethod *method, gpointer addr)
+mono_arch_get_unbox_trampoline (MonoMethod *method, gpointer addr)
 {
        guint8 *code, *start;
        int this_pos = s390_r2;
index 945ffa31242fa330b1849191aea55818edc1079e..bc9ba8cbba0b6c2d67561ab1d93deb41688c7f19 100644 (file)
 /*                When value type methods are called through the    */
 /*               vtable we need to unbox the 'this' argument.      */
 /*                                                                 */
-/* Parameters   - gsctx  - Generic sharing context                 */
-/*                method - Methd pointer                           */
+/* Parameters   - method - Methd pointer                           */
 /*               addr   - Pointer to native code for method        */
 /*                                                                 */
 /*------------------------------------------------------------------*/
 
 gpointer
-mono_arch_get_unbox_trampoline (MonoGenericSharingContext *gsctx, MonoMethod *method, gpointer addr)
+mono_arch_get_unbox_trampoline (MonoMethod *method, gpointer addr)
 {
        guint8 *code, *start;
        int this_pos = s390_r2;
index fa469c9efef26b5462d7ebf8ce6b08497876f8fc..642f773d46b29c573dfa09d2a21dee9121dadf0e 100644 (file)
@@ -21,7 +21,6 @@
 
 /*
  * mono_arch_get_unbox_trampoline:
- * @gsctx: the generic sharing context
  * @m: method pointer
  * @addr: pointer to native code for @m
  *
  * unboxing before calling the method
  */
 gpointer
-mono_arch_get_unbox_trampoline (MonoGenericSharingContext *gsctx, MonoMethod *m, gpointer addr)
+mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
 {
        guint8 *code, *start;
-       int this_pos = 4, reg;
+       int reg;
 
-       if (MONO_TYPE_ISSTRUCT (mono_method_signature (m)->ret))
-               this_pos = 8;
-           
        start = code = mono_global_codeman_reserve (36);
 
        /* This executes in the context of the caller, hence o0 */
index 5b9e51507a966bdf47278ea31f41e5b134d30775..071db897631f311211678365d92c5438b0c19529 100644 (file)
@@ -29,7 +29,6 @@ static guint8* nullified_class_init_trampoline;
 
 /*
  * mono_arch_get_unbox_trampoline:
- * @gsctx: the generic sharing context
  * @m: method pointer
  * @addr: pointer to native code for @m
  *
@@ -38,7 +37,7 @@ static guint8* nullified_class_init_trampoline;
  * unboxing before calling the method
  */
 gpointer
-mono_arch_get_unbox_trampoline (MonoGenericSharingContext *gsctx, MonoMethod *m, gpointer addr)
+mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
 {
        guint8 *code, *start;
        int this_pos = 4;