From: hubicka Date: Tue, 14 Dec 1999 11:08:22 +0000 (+0000) Subject: * regclass.c (record_reg_classes): Handle INOUT operands propertly. X-Git-Tag: upstream/4.9.2~104190 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8cd8199294dcbe7aff2cf940827395bd1d1aa7b5;p=platform%2Fupstream%2Flinaro-gcc.git * regclass.c (record_reg_classes): Handle INOUT operands propertly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30912 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a70142a..de821d4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Tue Dec 14 12:07:29 MET 1999 Jan Hubicka + + * regclass.c (record_reg_classes): Handle INOUT operands propertly. + 1999-12-14 Jakub Jelinek * config/sparc/linux64.h (TARGET_LIVE_G0, diff --git a/gcc/regclass.c b/gcc/regclass.c index 630e3e8..f48a7c2 100644 --- a/gcc/regclass.c +++ b/gcc/regclass.c @@ -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