]> git.unchartedbackwaters.co.uk Git - francis/libjit.git/commitdiff
add global jit_reg_other_reg macro to replace local reg-alloc OTHER_REG
authorAleksey Demakov <ademakov@gmail.com>
Tue, 24 Mar 2009 15:59:56 +0000 (15:59 +0000)
committerAleksey Demakov <ademakov@gmail.com>
Tue, 24 Mar 2009 15:59:56 +0000 (15:59 +0000)
ChangeLog
jit/jit-reg-alloc.c
jit/jit-rules-x86.c
jit/jit-rules.h

index bf97c0f543c59b238870bd1eebc39571c4810e49..830afec996c82260fb2a4a1b8e2f111d3c1d3739 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-03-24  Aleksey Demakov  <ademakov@gmail.com>
+
+       * jit/jit-rules.h (jit_reg_other_reg): add macro.
+       * jit/jit-reg-alloc.c: replace OTHER_REG with jit_reg_other_reg.
+       * jit/jit-rules-x86.c (_jit_gen_load_value): use jit_reg_other_reg.
+
 2009-03-23  Aleksey Demakov  <ademakov@gmail.com>
 
        * jit/jit-rules-arm.ins: minor cleanup.
index aa838e69ead9d63c5bf856a389363cf3db206b46..5435ba7df8b03737d61cb5915c960b19977a5e7f 100644 (file)
@@ -59,11 +59,6 @@ mostly don't have to worry about it:
 #define IS_STACK_REG(reg)      (0)
 #endif
 
-/*
- * Get the other register of a long pair.
- */
-#define OTHER_REG(reg)         (_jit_reg_info[reg].other_reg)
-
 /* The cost value that precludes using the register in question. */
 #define COST_TOO_MUCH          1000000
 
@@ -152,7 +147,7 @@ get_long_pair_start(int other_reg)
        int reg;
        for(reg = 0; reg < JIT_NUM_REGS; reg++)
        {
-               if(other_reg == OTHER_REG(reg))
+               if(other_reg == jit_reg_other_reg(reg))
                {
                        return reg;
                }
@@ -696,7 +691,7 @@ set_regdesc_flags(jit_gencode_t gen, _jit_regs_t *regs, int index)
                        reg = desc->value->reg;
                        if(gen->contents[reg].is_long_start)
                        {
-                               other_reg = OTHER_REG(reg);
+                               other_reg = jit_reg_other_reg(reg);
                        }
                        else
                        {
@@ -1041,7 +1036,7 @@ thrashes_value(jit_gencode_t gen,
                }
                if(gen->contents[reg2].is_long_start)
                {
-                       other_reg2 = OTHER_REG(reg2);
+                       other_reg2 = jit_reg_other_reg(reg2);
                        if(other_reg2 == reg /*|| other_reg2 == other_reg*/)
                        {
                                return 1;
@@ -1172,7 +1167,7 @@ choose_output_register(jit_gencode_t gen, _jit_regs_t *regs)
 
                if(need_pair)
                {
-                       other_reg = OTHER_REG(reg);
+                       other_reg = jit_reg_other_reg(reg);
                        if(jit_reg_is_used(gen->inhibit, other_reg))
                        {
                                continue;
@@ -1426,7 +1421,7 @@ choose_input_register(jit_gencode_t gen, _jit_regs_t *regs, int index)
 
                if(need_pair)
                {
-                       other_reg = OTHER_REG(reg);
+                       other_reg = jit_reg_other_reg(reg);
                        if(jit_reg_is_used(regs->assigned, other_reg))
                        {
                                continue;
@@ -2142,7 +2137,7 @@ spill_register(jit_gencode_t gen, int reg)
        /* Find the other register in a long pair */
        if(gen->contents[reg].is_long_start)
        {
-               other_reg = OTHER_REG(reg);
+               other_reg = jit_reg_other_reg(reg);
        }
        else if(gen->contents[reg].is_long_end)
        {
@@ -2248,7 +2243,7 @@ spill_clobbered_register(jit_gencode_t gen, _jit_regs_t *regs, int reg)
                /* Find the other register in a long pair */
                if(gen->contents[reg].is_long_start)
                {
-                       other_reg = OTHER_REG(reg);
+                       other_reg = jit_reg_other_reg(reg);
                }
                else if(gen->contents[reg].is_long_end)
                {
@@ -2294,7 +2289,7 @@ update_age(jit_gencode_t gen, _jit_regdesc_t *desc)
        reg = desc->value->reg;
        if(gen->contents[reg].is_long_start)
        {
-               other_reg = OTHER_REG(reg);
+               other_reg = jit_reg_other_reg(reg);
        }
        else
        {
@@ -2328,7 +2323,7 @@ save_input_value(jit_gencode_t gen, _jit_regs_t *regs, int index)
        reg = desc->value->reg;
        if(gen->contents[reg].is_long_start)
        {
-               other_reg = OTHER_REG(reg);
+               other_reg = jit_reg_other_reg(reg);
        }
        else
        {
@@ -2368,7 +2363,7 @@ free_output_value(jit_gencode_t gen, _jit_regs_t *regs)
        reg = desc->value->reg;
        if(gen->contents[reg].is_long_start)
        {
-               other_reg = OTHER_REG(reg);
+               other_reg = jit_reg_other_reg(reg);
        }
        else
        {
@@ -2588,7 +2583,7 @@ commit_input_value(jit_gencode_t gen, _jit_regs_t *regs, int index, int killed)
                reg = desc->value->reg;
                if(gen->contents[reg].is_long_start)
                {
-                       other_reg = OTHER_REG(reg);
+                       other_reg = jit_reg_other_reg(reg);
                }
                else
                {
@@ -2937,7 +2932,7 @@ _jit_regs_set_incoming(jit_gencode_t gen, int reg, jit_value_t value)
        /* Find the other register in a long pair */
        if(_jit_regs_needs_long_pair(value->type))
        {
-               other_reg = OTHER_REG(reg);
+               other_reg = jit_reg_other_reg(reg);
        }
        else
        {
@@ -3002,7 +2997,7 @@ _jit_regs_set_outgoing(jit_gencode_t gen, int reg, jit_value_t value)
 #else
        if(_jit_regs_needs_long_pair(value->type))
        {
-               other_reg = OTHER_REG(reg);
+               other_reg = jit_reg_other_reg(reg);
        }
        else
        {
@@ -3059,7 +3054,7 @@ void _jit_regs_force_out(jit_gencode_t gen, jit_value_t value, int is_dest)
                /* Find the other register in a long pair */
                if(_jit_regs_needs_long_pair(value->type))
                {
-                       other_reg = OTHER_REG(reg);
+                       other_reg = jit_reg_other_reg(reg);
                }
                else
                {
@@ -3119,7 +3114,7 @@ _jit_regs_load_value(jit_gencode_t gen, jit_value_t value, int destroy, int used
                {
                        if(need_pair)
                        {
-                               other_reg = OTHER_REG(reg);
+                               other_reg = jit_reg_other_reg(reg);
                        }
                        else
                        {
@@ -3157,7 +3152,7 @@ _jit_regs_load_value(jit_gencode_t gen, jit_value_t value, int destroy, int used
 
                if(need_pair)
                {
-                       other_reg = OTHER_REG(reg);
+                       other_reg = jit_reg_other_reg(reg);
                        if(jit_reg_is_used(gen->inhibit, other_reg))
                        {
                                continue;
index 4d9b34eba5a4d22c7406dd38b6d6c7b74700b36b..a79e3bf6b653f095aff272d7c57bde8c61229191 100644 (file)
@@ -677,7 +677,7 @@ _jit_gen_exch_top(jit_gencode_t gen, int reg)
 }
 
 void
- _jit_gen_move_top(jit_gencode_t gen, int reg)
+_jit_gen_move_top(jit_gencode_t gen, int reg)
 {
        if(IS_FLOAT_REG(reg))
        {
@@ -925,7 +925,7 @@ _jit_gen_load_value(jit_gencode_t gen, int reg, int other_reg, jit_value_t value
                        src_reg = value->reg;
                        if(other_reg >= 0)
                        {
-                               other_src_reg = _jit_reg_info[src_reg].other_reg;
+                               other_src_reg = jit_reg_other_reg(src_reg);
                        }
                        else
                        {
index 6da4d7e63e10e8af58a70791588b0c4a9e4e13e5..3ca8ef97bf186f458ff6c2809494e983957db78b 100644 (file)
@@ -109,6 +109,11 @@ typedef struct
  */
 extern jit_reginfo_t const _jit_reg_info[JIT_NUM_REGS];
 
+/*
+ * Given the first register of a long pair get the other register.
+ */
+#define jit_reg_other_reg(reg)         (_jit_reg_info[reg].other_reg)
+
 /*
  * Manipulate register usage masks.  The backend may override these
  * definitions if it has more registers than can fit in a "jit_uint".