From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=37666 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OKcNE-0005CU-Fc for qemu-devel@nongnu.org; Fri, 04 Jun 2010 15:16:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OKcND-0002KP-AL for qemu-devel@nongnu.org; Fri, 04 Jun 2010 15:16:08 -0400 Received: from are.twiddle.net ([75.149.56.221]:54773) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OKcNC-0002K8-Mr for qemu-devel@nongnu.org; Fri, 04 Jun 2010 15:16:07 -0400 From: Richard Henderson Date: Fri, 4 Jun 2010 12:14:21 -0700 Message-Id: <1275678883-7082-14-git-send-email-rth@twiddle.net> In-Reply-To: <1275678883-7082-1-git-send-email-rth@twiddle.net> References: <1275678883-7082-1-git-send-email-rth@twiddle.net> Subject: [Qemu-devel] [PATCH 13/35] tcg-s390: Tidy regset initialization; use R14 as temporary. List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: agraf@suse.de, aurelien@aurel32.net Signed-off-by: Richard Henderson --- tcg/s390/tcg-target.c | 26 ++++++++++++-------------- 1 files changed, 12 insertions(+), 14 deletions(-) diff --git a/tcg/s390/tcg-target.c b/tcg/s390/tcg-target.c index 2b80c02..95ea3c8 100644 --- a/tcg/s390/tcg-target.c +++ b/tcg/s390/tcg-target.c @@ -41,7 +41,7 @@ #define TCG_REG_NONE 0 /* A scratch register that may be be used throughout the backend. */ -#define TCG_TMP0 TCG_REG_R13 +#define TCG_TMP0 TCG_REG_R14 /* All of the following instructions are prefixed with their instruction @@ -1185,24 +1185,22 @@ void tcg_target_init(TCGContext *s) tcg_regset_set32(tcg_target_available_regs[TCG_TYPE_I32], 0, 0xffff); tcg_regset_set32(tcg_target_available_regs[TCG_TYPE_I64], 0, 0xffff); - tcg_regset_set32(tcg_target_call_clobber_regs, 0, - (1 << TCG_REG_R0) | - (1 << TCG_REG_R1) | - (1 << TCG_REG_R2) | - (1 << TCG_REG_R3) | - (1 << TCG_REG_R4) | - (1 << TCG_REG_R5) | - (1 << TCG_REG_R14)); /* link register */ + + tcg_regset_clear(tcg_target_call_clobber_regs); + tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_R0); + tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_R1); + tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_R2); + tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_R3); + tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_R4); + tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_R5); + /* The return register can be considered call-clobbered. */ + tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_R14); tcg_regset_clear(s->reserved_regs); - /* frequently used as a temporary */ tcg_regset_set_reg(s->reserved_regs, TCG_TMP0); - /* another temporary */ - tcg_regset_set_reg(s->reserved_regs, TCG_REG_R12); /* XXX many insns can't be used with R0, so we better avoid it for now */ tcg_regset_set_reg(s->reserved_regs, TCG_REG_R0); - /* The stack pointer. */ - tcg_regset_set_reg(s->reserved_regs, TCG_REG_R15); + tcg_regset_set_reg(s->reserved_regs, TCG_REG_CALL_STACK); tcg_add_target_add_op_defs(s390_op_defs); } -- 1.7.0.1