[Mono-bugs] [Bug 69541][Wis] Changed - [PPC PATCH] OP_ARGLIST unsupported

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Tue, 23 Nov 2004 12:29:05 -0500 (EST)


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by lupus@ximian.com.

http://bugzilla.ximian.com/show_bug.cgi?id=69541

--- shadow/69541	2004-11-16 16:23:16.000000000 -0500
+++ shadow/69541.tmp.8271	2004-11-23 12:29:05.000000000 -0500
@@ -52,6 +52,27 @@
 ------- Additional Comments From grompf@sublimeintervention.com  2004-11-16 16:23 -------
 This final patch now supports struct returning as well; and passes mcs/tests/test-269 
 properly
 
 -kangaroo
 
+
+------- Additional Comments From lupus@ximian.com  2004-11-23 12:29 -------
+The patch doesn't look completely correct. If the slot for the cookie
+is allocated with add_general(), why do you increase
+its offset for instance methods and methods that return structs?
+Also, you can't just use cinfo->sig_cookie.offset, since
+on Linux the coockie may not get assigned its stack offset
+(on Linux there is no room in the param area for arguments
+passed in registers). You could move the
+gr = PPC_LAST_ARG_REG + 1;
+code before add_general() to quickly fix this though with a small perf
+hit.
+You should also not change cpu-g4.md: the instruction can be
+12 bytes long once you take into account the fact that the offset
+(cfg->sig_cookie + cfg->stack_usage) doesn't fit in the immediate
+field of the instruction: then you need to add the check and
+optionally build the offset in a register and add that.
+Last, in OP_ARGLIST you can't use ppc_sp, since that may not always be
+the frame register: use cfg->frame_reg.
+Thanks.
+