Commit abaa26e5 by Richard Earnshaw

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

From-SVN: r5711
parent 26563586
...@@ -142,9 +142,11 @@ const_ok_for_arm (i) ...@@ -142,9 +142,11 @@ const_ok_for_arm (i)
do do
{ {
if ((i & mask & 0xffffffffu) == 0) if ((i & mask & (unsigned HOST_WIDE_INT) 0xffffffff) == 0)
return(TRUE); 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); } while (mask != ~0xFF);
return (FALSE); return (FALSE);
...@@ -1727,6 +1729,9 @@ output_prologue (f, frame_size) ...@@ -1727,6 +1729,9 @@ output_prologue (f, frame_size)
they were passed there. */ they were passed there. */
int store_arg_regs = 0; int store_arg_regs = 0;
if (arm_ccfsm_state || arm_target_insn)
abort (); /* Sanity check */
return_used_this_function = 0; return_used_this_function = 0;
lr_save_eliminated = 0; lr_save_eliminated = 0;
...@@ -1833,7 +1838,7 @@ output_epilogue (f, frame_size) ...@@ -1833,7 +1838,7 @@ output_epilogue (f, frame_size)
FILE *f; FILE *f;
int frame_size; 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 */ /* If we need this then it will always be at lesat this much */
int floats_offset = 24; int floats_offset = 24;
rtx operands[3]; rtx operands[3];
...@@ -2235,7 +2240,10 @@ final_prescan_insn (insn, opvec, noperands) ...@@ -2235,7 +2240,10 @@ final_prescan_insn (insn, opvec, noperands)
if (arm_ccfsm_state == 4) if (arm_ccfsm_state == 4)
{ {
if (insn == arm_target_insn) if (insn == arm_target_insn)
{
arm_target_insn = NULL;
arm_ccfsm_state = 0; arm_ccfsm_state = 0;
}
return; return;
} }
...@@ -2463,6 +2471,7 @@ final_prescan_insn (insn, opvec, noperands) ...@@ -2463,6 +2471,7 @@ final_prescan_insn (insn, opvec, noperands)
/* Oh, dear! we ran off the end.. give up */ /* Oh, dear! we ran off the end.. give up */
recog (PATTERN (insn), insn, NULL_PTR); recog (PATTERN (insn), insn, NULL_PTR);
arm_ccfsm_state = 0; arm_ccfsm_state = 0;
arm_target_insn = NULL;
return; return;
} }
arm_target_insn = this_insn; arm_target_insn = this_insn;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment