CR16_ABSOLUTE
};
-extern void notice_update_cc (rtx);
extern int cr16_operand_bit_pos (int val, int bitval);
extern void cr16_decompose_const (rtx x, int *code,
enum data_model_type *data,
return 1;
}
-void
-notice_update_cc (rtx exp)
-{
- if (GET_CODE (exp) == SET)
- {
- /* Jumps do not alter the cc's. */
- if (SET_DEST (exp) == pc_rtx)
- return;
-
- /* Moving register or memory into a register:
- it doesn't alter the cc's, but it might invalidate
- the RTX's which we remember the cc's came from.
- (Note that moving a constant 0 or 1 MAY set the cc's). */
- if (REG_P (SET_DEST (exp))
- && (REG_P (SET_SRC (exp)) || GET_CODE (SET_SRC (exp)) == MEM))
- {
- return;
- }
-
- /* Moving register into memory doesn't alter the cc's.
- It may invalidate the RTX's which we remember the cc's came from. */
- if (GET_CODE (SET_DEST (exp)) == MEM && REG_P (SET_SRC (exp)))
- {
- return;
- }
- }
-
- CC_STATUS_INIT;
- return;
-}
-
static scalar_int_mode
cr16_unwind_word_mode (void)
{
(targetm.hard_regno_nregs (REGNO, \
GET_MODE_WIDER_MODE (word_mode).require ()) == 1)
-#define NOTICE_UPDATE_CC(EXP, INSN) \
- notice_update_cc ((EXP))
-
/* Interrupt functions can only use registers that have already been
saved by the prologue, even if they would normally be call-clobbered
Check if sizes are same and then check if it is possible to rename. */