From 48af475c43cae7080463357adc070e549441492b Mon Sep 17 00:00:00 2001 From: erich Date: Sun, 10 Oct 1993 16:46:52 +0000 Subject: [PATCH] (const_ok_for_arm): cast constants to unsigned HOST_WIDE_INT. (output_prologue): Sanity check the finite state machine. (output_epilogue): Delete unused variable. (final_prescan_insn): Always clear arm_target_insn when FSM goes to state 0. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@5711 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/config/arm/arm.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index fa10ce23201..8f77c7789ab 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -142,9 +142,11 @@ const_ok_for_arm (i) do { - if ((i & mask & 0xffffffffu) == 0) + if ((i & mask & (unsigned HOST_WIDE_INT) 0xffffffff) == 0) return(TRUE); - mask = (mask << 2) | ((mask & 0xffffffffu) >> (32 - 2)) | ~0xffffffffu; + mask = + (mask << 2) | ((mask & (unsigned HOST_WIDE_INT) 0xffffffff) + >> (32 - 2)) | ~((unsigned HOST_WIDE_INT) 0xffffffff); } while (mask != ~0xFF); return (FALSE); @@ -1727,6 +1729,9 @@ output_prologue (f, frame_size) they were passed there. */ int store_arg_regs = 0; + if (arm_ccfsm_state || arm_target_insn) + abort (); /* Sanity check */ + return_used_this_function = 0; lr_save_eliminated = 0; @@ -1833,7 +1838,7 @@ output_epilogue (f, frame_size) FILE *f; int frame_size; { - int reg, live_regs_mask = 0, code_size = 0, fp_needed = 0; + int reg, live_regs_mask = 0, code_size = 0; /* If we need this then it will always be at lesat this much */ int floats_offset = 24; rtx operands[3]; @@ -2235,7 +2240,10 @@ final_prescan_insn (insn, opvec, noperands) if (arm_ccfsm_state == 4) { if (insn == arm_target_insn) + { + arm_target_insn = NULL; arm_ccfsm_state = 0; + } return; } @@ -2463,6 +2471,7 @@ final_prescan_insn (insn, opvec, noperands) /* Oh, dear! we ran off the end.. give up */ recog (PATTERN (insn), insn, NULL_PTR); arm_ccfsm_state = 0; + arm_target_insn = NULL; return; } arm_target_insn = this_insn; -- 2.11.4.GIT