From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Lq7rn-00005n-BL for qemu-devel@nongnu.org; Sat, 04 Apr 2009 11:33:07 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Lq7rl-000057-Q4 for qemu-devel@nongnu.org; Sat, 04 Apr 2009 11:33:06 -0400 Received: from [199.232.76.173] (port=49604 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Lq7rl-00004y-Hh for qemu-devel@nongnu.org; Sat, 04 Apr 2009 11:33:05 -0400 Received: from savannah.gnu.org ([199.232.41.3]:56929 helo=sv.gnu.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Lq7rl-0007yG-9x for qemu-devel@nongnu.org; Sat, 04 Apr 2009 11:33:05 -0400 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Lq7rk-00025B-LJ for qemu-devel@nongnu.org; Sat, 04 Apr 2009 15:33:04 +0000 Received: from blueswir1 by cvs.savannah.gnu.org with local (Exim 4.69) (envelope-from ) id 1Lq7rk-00024q-9S for qemu-devel@nongnu.org; Sat, 04 Apr 2009 15:33:04 +0000 MIME-Version: 1.0 Errors-To: blueswir1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Blue Swirl Message-Id: Date: Sat, 04 Apr 2009 15:33:04 +0000 Subject: [Qemu-devel] [6973] Allocate space for static call args, increase stack frame size on Sparc64 Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Revision: 6973 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6973 Author: blueswir1 Date: 2009-04-04 15:33:03 +0000 (Sat, 04 Apr 2009) Log Message: ----------- Allocate space for static call args, increase stack frame size on Sparc64 Modified Paths: -------------- trunk/tcg/sparc/tcg-target.c trunk/tcg/sparc/tcg-target.h Modified: trunk/tcg/sparc/tcg-target.c =================================================================== --- trunk/tcg/sparc/tcg-target.c 2009-04-04 09:21:28 UTC (rev 6972) +++ trunk/tcg/sparc/tcg-target.c 2009-04-04 15:33:03 UTC (rev 6973) @@ -578,9 +578,11 @@ global registers */ // delay slot tcg_out_ldst(s, TCG_AREG0, TCG_REG_CALL_STACK, - TCG_TARGET_CALL_STACK_OFFSET - sizeof(long), HOST_ST_OP); + TCG_TARGET_CALL_STACK_OFFSET - TCG_STATIC_CALL_ARGS_SIZE - + sizeof(long), HOST_ST_OP); tcg_out_ldst(s, TCG_AREG0, TCG_REG_CALL_STACK, - TCG_TARGET_CALL_STACK_OFFSET - sizeof(long), HOST_LD_OP); + TCG_TARGET_CALL_STACK_OFFSET - TCG_STATIC_CALL_ARGS_SIZE - + sizeof(long), HOST_LD_OP); /* data_reg = sign_extend(arg0) */ switch(opc) { @@ -781,9 +783,11 @@ global registers */ // delay slot tcg_out_ldst(s, TCG_AREG0, TCG_REG_CALL_STACK, - TCG_TARGET_CALL_STACK_OFFSET - sizeof(long), HOST_ST_OP); + TCG_TARGET_CALL_STACK_OFFSET - TCG_STATIC_CALL_ARGS_SIZE - + sizeof(long), HOST_ST_OP); tcg_out_ldst(s, TCG_AREG0, TCG_REG_CALL_STACK, - TCG_TARGET_CALL_STACK_OFFSET - sizeof(long), HOST_LD_OP); + TCG_TARGET_CALL_STACK_OFFSET - TCG_STATIC_CALL_ARGS_SIZE - + sizeof(long), HOST_LD_OP); /* will become: ba label2 */ @@ -905,9 +909,11 @@ global registers */ // delay slot tcg_out_ldst(s, TCG_AREG0, TCG_REG_CALL_STACK, - TCG_TARGET_CALL_STACK_OFFSET - sizeof(long), HOST_ST_OP); + TCG_TARGET_CALL_STACK_OFFSET - TCG_STATIC_CALL_ARGS_SIZE - + sizeof(long), HOST_ST_OP); tcg_out_ldst(s, TCG_AREG0, TCG_REG_CALL_STACK, - TCG_TARGET_CALL_STACK_OFFSET - sizeof(long), HOST_LD_OP); + TCG_TARGET_CALL_STACK_OFFSET - TCG_STATIC_CALL_ARGS_SIZE - + sizeof(long), HOST_LD_OP); break; case INDEX_op_jmp: case INDEX_op_br: Modified: trunk/tcg/sparc/tcg-target.h =================================================================== --- trunk/tcg/sparc/tcg-target.h 2009-04-04 09:21:28 UTC (rev 6972) +++ trunk/tcg/sparc/tcg-target.h 2009-04-04 15:33:03 UTC (rev 6973) @@ -75,12 +75,14 @@ #define TCG_REG_CALL_STACK TCG_REG_I6 #ifdef __arch64__ // Reserve space for AREG0 -#define TCG_TARGET_STACK_MINFRAME (176 + 2 * (int)sizeof(long)) -#define TCG_TARGET_CALL_STACK_OFFSET (2047 + TCG_TARGET_STACK_MINFRAME) +#define TCG_TARGET_STACK_MINFRAME (176 + 4 * (int)sizeof(long) + \ + TCG_STATIC_CALL_ARGS_SIZE) +#define TCG_TARGET_CALL_STACK_OFFSET (2047 - 16) #define TCG_TARGET_STACK_ALIGN 16 #else // AREG0 + one word for alignment -#define TCG_TARGET_STACK_MINFRAME (92 + (2 + 1) * (int)sizeof(long)) +#define TCG_TARGET_STACK_MINFRAME (92 + (2 + 1) * (int)sizeof(long) + \ + TCG_STATIC_CALL_ARGS_SIZE) #define TCG_TARGET_CALL_STACK_OFFSET TCG_TARGET_STACK_MINFRAME #define TCG_TARGET_STACK_ALIGN 8 #endif