* regclass.c (record_reg_classes): Handle INOUT operands propertly.

From-SVN: r30912
This commit is contained in:
Jan Hubicka 1999-12-14 12:08:22 +01:00 committed by Jan Hubicka
parent 5a5e9ce690
commit d5e2075dbf
2 changed files with 28 additions and 12 deletions

View file

@ -1,3 +1,7 @@
Tue Dec 14 12:07:29 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
* regclass.c (record_reg_classes): Handle INOUT operands propertly.
1999-12-14 Jakub Jelinek <jakub@redhat.com>
* config/sparc/linux64.h (TARGET_LIVE_G0,

View file

@ -1306,18 +1306,24 @@ record_reg_classes (n_alts, n_ops, ops, modes, subreg_changes_size,
for (class = 0; class < N_REG_CLASSES; class++)
pp->cost[class]
= (recog_data.operand_type[i] == OP_IN
? may_move_in_cost[class][(int) classes[i]]
: may_move_out_cost[(int) classes[i]][class]);
= ((recog_data.operand_type[i] != OP_OUT
? may_move_in_cost[class][(int) classes[i]]
: 0)
+ (recog_data.operand_type[i] != OP_IN
? may_move_out_cost[(int) classes[i]][class]
: 0));
/* If the alternative actually allows memory, make things
a bit cheaper since we won't need an extra insn to
load it. */
pp->mem_cost
= (MEMORY_MOVE_COST (mode, classes[i],
recog_data.operand_type[i] == OP_IN)
- allows_mem[i]);
= ((recog_data.operand_type[i] != OP_IN
? MEMORY_MOVE_COST (mode, classes[i], 0)
: 0)
+ (recog_data.operand_type[i] != OP_OUT
? MEMORY_MOVE_COST (mode, classes[i], 1)
: 0) - allows_mem[i]);
/* If we have assigned a class to this register in our
first pass, add a cost to this alternative corresponding
@ -1527,18 +1533,24 @@ record_reg_classes (n_alts, n_ops, ops, modes, subreg_changes_size,
for (class = 0; class < N_REG_CLASSES; class++)
pp->cost[class]
= (recog_data.operand_type[i] == OP_IN
? may_move_in_cost[class][(int) classes[i]]
: may_move_out_cost[(int) classes[i]][class]);
= ((recog_data.operand_type[i] != OP_OUT
? may_move_in_cost[class][(int) classes[i]]
: 0)
+ (recog_data.operand_type[i] != OP_IN
? may_move_out_cost[(int) classes[i]][class]
: 0));
/* If the alternative actually allows memory, make things
a bit cheaper since we won't need an extra insn to
load it. */
pp->mem_cost
= (MEMORY_MOVE_COST (mode, classes[i],
recog_data.operand_type[i] == OP_IN)
- allows_mem[i]);
= ((recog_data.operand_type[i] != OP_IN
? MEMORY_MOVE_COST (mode, classes[i], 0)
: 0)
+ (recog_data.operand_type[i] != OP_OUT
? MEMORY_MOVE_COST (mode, classes[i], 1)
: 0) - allows_mem[i]);
/* If we have assigned a class to this register in our
first pass, add a cost to this alternative corresponding