Commit d5e2075d by Jan Hubicka Committed by Jan Hubicka

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

From-SVN: r30912
parent 5a5e9ce6
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,
......
......@@ -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
= ((recog_data.operand_type[i] != OP_OUT
? may_move_in_cost[class][(int) classes[i]]
: may_move_out_cost[(int) classes[i]][class]);
: 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
= ((recog_data.operand_type[i] != OP_OUT
? may_move_in_cost[class][(int) classes[i]]
: may_move_out_cost[(int) classes[i]][class]);
: 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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment