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:
Jeff Law 2018-06-27 12:30:06 -06:00 committed by Jeff Law
parent 8945521a50
commit 03e32fb748
5 changed files with 109 additions and 372 deletions

View file

@ -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.

View file

@ -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);

View file

@ -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

View file

@ -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