Patchwork [01/22] tcg-i386: Allocate call-saved registers first.

login
register
mail settings
Submitter Richard Henderson
Date April 13, 2010, 10:23 p.m.
Message ID <37339e7292570104fa1a5839a84f0737b8aec3e6.1272479073.git.rth@twiddle.net>
Download mbox | patch
Permalink /patch/51191/
State New
Headers show

Comments

Richard Henderson - April 13, 2010, 10:23 p.m.
Signed-off-by: Richard Henderson <rth@twiddle.net>
---
 tcg/i386/tcg-target.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)
Aurelien Jarno - May 19, 2010, 6:46 a.m.
On Tue, Apr 13, 2010 at 03:23:53PM -0700, Richard Henderson wrote:
> Signed-off-by: Richard Henderson <rth@twiddle.net>
> ---
>  tcg/i386/tcg-target.c |   13 +++++++++----
>  1 files changed, 9 insertions(+), 4 deletions(-)

Thanks, applied.

> diff --git a/tcg/i386/tcg-target.c b/tcg/i386/tcg-target.c
> index e684b33..f5c24f7 100644
> --- a/tcg/i386/tcg-target.c
> +++ b/tcg/i386/tcg-target.c
> @@ -36,16 +36,21 @@ static const char * const tcg_target_reg_names[TCG_TARGET_NB_REGS] = {
>  #endif
>  
>  static const int tcg_target_reg_alloc_order[] = {
> -    TCG_REG_EAX,
> -    TCG_REG_EDX,
> -    TCG_REG_ECX,
>      TCG_REG_EBX,
>      TCG_REG_ESI,
>      TCG_REG_EDI,
>      TCG_REG_EBP,
> +    TCG_REG_ECX,
> +    TCG_REG_EDX,
> +    TCG_REG_EAX,
> +};
> +
> +static const int tcg_target_call_iarg_regs[3] = {
> +    TCG_REG_EAX,
> +    TCG_REG_EDX,
> +    TCG_REG_ECX
>  };
>  
> -static const int tcg_target_call_iarg_regs[3] = { TCG_REG_EAX, TCG_REG_EDX, TCG_REG_ECX };
>  static const int tcg_target_call_oarg_regs[2] = { TCG_REG_EAX, TCG_REG_EDX };
>  
>  static uint8_t *tb_ret_addr;
> -- 
> 1.6.6.1
> 
> 
> 
>

Patch

diff --git a/tcg/i386/tcg-target.c b/tcg/i386/tcg-target.c
index e684b33..f5c24f7 100644
--- a/tcg/i386/tcg-target.c
+++ b/tcg/i386/tcg-target.c
@@ -36,16 +36,21 @@  static const char * const tcg_target_reg_names[TCG_TARGET_NB_REGS] = {
 #endif
 
 static const int tcg_target_reg_alloc_order[] = {
-    TCG_REG_EAX,
-    TCG_REG_EDX,
-    TCG_REG_ECX,
     TCG_REG_EBX,
     TCG_REG_ESI,
     TCG_REG_EDI,
     TCG_REG_EBP,
+    TCG_REG_ECX,
+    TCG_REG_EDX,
+    TCG_REG_EAX,
+};
+
+static const int tcg_target_call_iarg_regs[3] = {
+    TCG_REG_EAX,
+    TCG_REG_EDX,
+    TCG_REG_ECX
 };
 
-static const int tcg_target_call_iarg_regs[3] = { TCG_REG_EAX, TCG_REG_EDX, TCG_REG_ECX };
 static const int tcg_target_call_oarg_regs[2] = { TCG_REG_EAX, TCG_REG_EDX };
 
 static uint8_t *tb_ret_addr;