v850-modes.def (CCZ, CCNZ): Add new modes.
* config/v850/v850-modes.def (CCZ, CCNZ): Add new modes. * config/v850/v850.c (notice_update_cc): Remove. * config/v850/v850.h (CC_OVERFLOW_UNUSABLE): Remove (CC_NO_CARRY): Likewise. (NOTICE_UPDATE_CC): Define to nothing. * config/v850/v850.md: Remove block comment on cc0 handling Remove "cc" attribute from all patterns. Remove cc_status handling from all patterns. Minor formatting fixes. Co-Authored-By: Austin Law <austinklaw@gmail.com> From-SVN: r262189
This commit is contained in:
parent
8945521a50
commit
03e32fb748
5 changed files with 109 additions and 372 deletions
|
@ -1,3 +1,15 @@
|
|||
2018-06-27 Jeff Law <law@redhat.com>
|
||||
Austin Law <austinklaw@gmail.com>
|
||||
|
||||
* config/v850/v850-modes.def (CCZ, CCNZ): Add new modes.
|
||||
* config/v850/v850.c (notice_update_cc): Remove.
|
||||
* config/v850/v850.h (CC_OVERFLOW_UNUSABLE): Remove
|
||||
(CC_NO_CARRY): Likewise.
|
||||
(NOTICE_UPDATE_CC): Define to nothing.
|
||||
* config/v850/v850.md: Remove block comment on cc0 handling
|
||||
Remove "cc" attribute from all patterns. Remove cc_status handling
|
||||
from all patterns. Minor formatting fixes.
|
||||
|
||||
2018-06-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||
|
||||
* config/aarch64/aarch64-cores.def (cortex-a76): New entry.
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
CC_MODE (CCZ);
|
||||
CC_MODE (CCNZ);
|
||||
CC_MODE (CC_FPU_LT);
|
||||
CC_MODE (CC_FPU_LE);
|
||||
CC_MODE (CC_FPU_GT);
|
||||
|
|
|
@ -1985,55 +1985,6 @@ expand_epilogue (void)
|
|||
v850_interrupt_p = FALSE;
|
||||
}
|
||||
|
||||
/* Update the condition code from the insn. */
|
||||
void
|
||||
notice_update_cc (rtx body, rtx_insn *insn)
|
||||
{
|
||||
switch (get_attr_cc (insn))
|
||||
{
|
||||
case CC_NONE:
|
||||
/* Insn does not affect CC at all. */
|
||||
break;
|
||||
|
||||
case CC_NONE_0HIT:
|
||||
/* Insn does not change CC, but the 0'th operand has been changed. */
|
||||
if (cc_status.value1 != 0
|
||||
&& reg_overlap_mentioned_p (recog_data.operand[0], cc_status.value1))
|
||||
cc_status.value1 = 0;
|
||||
break;
|
||||
|
||||
case CC_SET_ZN:
|
||||
/* Insn sets the Z,N flags of CC to recog_data.operand[0].
|
||||
V,C is in an unusable state. */
|
||||
CC_STATUS_INIT;
|
||||
cc_status.flags |= CC_OVERFLOW_UNUSABLE | CC_NO_CARRY;
|
||||
cc_status.value1 = recog_data.operand[0];
|
||||
break;
|
||||
|
||||
case CC_SET_ZNV:
|
||||
/* Insn sets the Z,N,V flags of CC to recog_data.operand[0].
|
||||
C is in an unusable state. */
|
||||
CC_STATUS_INIT;
|
||||
cc_status.flags |= CC_NO_CARRY;
|
||||
cc_status.value1 = recog_data.operand[0];
|
||||
break;
|
||||
|
||||
case CC_COMPARE:
|
||||
/* The insn is a compare instruction. */
|
||||
CC_STATUS_INIT;
|
||||
cc_status.value1 = SET_SRC (body);
|
||||
break;
|
||||
|
||||
case CC_CLOBBER:
|
||||
/* Insn doesn't leave CC in a usable state. */
|
||||
CC_STATUS_INIT;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Retrieve the data area that has been chosen for the given decl. */
|
||||
|
||||
v850_data_area
|
||||
|
|
|
@ -567,19 +567,7 @@ struct cum_arg { int nbytes; };
|
|||
|
||||
#define SELECT_CC_MODE(OP, X, Y) v850_select_cc_mode (OP, X, Y)
|
||||
|
||||
/* Tell final.c how to eliminate redundant test instructions. */
|
||||
|
||||
/* Here we define machine-dependent flags and fields in cc_status
|
||||
(see `conditions.h'). No extra ones are needed for the VAX. */
|
||||
|
||||
/* Store in cc_status the expressions
|
||||
that the condition codes will describe
|
||||
after execution of an instruction whose pattern is EXP.
|
||||
Do not alter them if the instruction would not alter the cc's. */
|
||||
|
||||
#define CC_OVERFLOW_UNUSABLE 0x200
|
||||
#define CC_NO_CARRY CC_NO_OVERFLOW
|
||||
#define NOTICE_UPDATE_CC(EXP, INSN) notice_update_cc(EXP, INSN)
|
||||
#define NOTICE_UPDATE_CC(EXP, INSN)
|
||||
|
||||
/* Nonzero if access to memory by bytes or half words is no faster
|
||||
than accessing full words. */
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue