From 7d54aa28854df80d6bf3f0ed7db60df878b53db7 Mon Sep 17 00:00:00 2001 From: Paolo Molaro Date: Sat, 6 Apr 2002 10:40:58 +0000 Subject: [PATCH] Sat Apr 6 16:29:40 CEST 2002 Paolo Molaro * x86/tramp.c: fix advancement od argument position on the stack. svn path=/trunk/mono/; revision=3652 --- mono/arch/ChangeLog | 4 ++++ mono/arch/x86/tramp.c | 16 ++-------------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/mono/arch/ChangeLog b/mono/arch/ChangeLog index 48b847d6eb6..4b6b91e2c97 100644 --- a/mono/arch/ChangeLog +++ b/mono/arch/ChangeLog @@ -1,4 +1,8 @@ +Sat Apr 6 16:29:40 CEST 2002 Paolo Molaro + + * x86/tramp.c: fix advancement od argument position on the stack. + Sat Mar 16 19:12:57 CET 2002 Paolo Molaro * x86/tramp.c: increase default allocated size for trampolines diff --git a/mono/arch/x86/tramp.c b/mono/arch/x86/tramp.c index 620aad25f11..74c5eba8d70 100644 --- a/mono/arch/x86/tramp.c +++ b/mono/arch/x86/tramp.c @@ -376,7 +376,7 @@ mono_create_method_pointer (MonoMethod *method) unsigned char *p, *code_buffer; gint32 local_size; gint32 stackval_pos, arg_pos = 8; - int i; + int i, align; /* * If it is a static P/Invoke method, we can just return the pointer @@ -444,19 +444,7 @@ mono_create_method_pointer (MonoMethod *method) x86_call_reg (p, X86_ECX); x86_alu_reg_imm (p, X86_SUB, X86_ESP, 12); stackval_pos += sizeof (stackval); - arg_pos += 4; - if (!sig->params [i]->byref) { - switch (sig->params [i]->type) { - case MONO_TYPE_I8: - case MONO_TYPE_R8: - arg_pos += 4; - break; - case MONO_TYPE_VALUETYPE: - g_assert_not_reached (); /* Not implemented yet. */ - default: - break; - } - } + arg_pos += mono_type_stack_size (sig->params [i], &align); } /* -- 2.25.1