if (leaf_function)
{
if (leaf_return_peephole_ok ())
- return (get_attr_in_branch_delay (trial) == IN_BRANCH_DELAY_TRUE);
+ return (get_attr_in_uncond_branch_delay (trial) == IN_BRANCH_DELAY_TRUE);
return 0;
}
aligned at least to a 8-byte boundary. This should only be called
for memory accesses whose size is 8 bytes or larger. */
-static int
+int
mem_aligned_8 (mem)
register rtx mem;
{
register rtx offset;
if (GET_CODE (mem) != MEM)
- abort (); /* It's gotta be a MEM! */
+ return 0; /* It's gotta be a MEM! */
addr = XEXP (mem, 0);
abort if we are passed pseudo registers. */
int
-registers_ok_for_ldd (reg1, reg2)
+registers_ok_for_ldd_peep (reg1, reg2)
rtx reg1, reg2;
{
need only check that the offset for addr1 % 8 == 0. */
int
-memory_ok_for_ldd (addr1, addr2)
+addrs_ok_for_ldd_peep (addr1, addr2)
rtx addr1, addr2;
{
int reg1, offset1;
instructions. */
return 1;
}
+
+/* Return 1 if reg is a pseudo, or is the first register in
+ a hard register pair. This makes it a candidate for use in
+ ldd and std insns. */
+
+int
+register_ok_for_ldd (reg)
+ rtx reg;
+{
+
+ /* We might have been passed a SUBREG. */
+ if (GET_CODE (reg) != REG)
+ return 0;
+
+ if (REGNO (reg) < FIRST_PSEUDO_REGISTER)
+ return (REGNO (reg) % 2 == 0);
+ else
+ return 1;
+
+}
\f
/* Print operand X (an rtx) in assembler syntax to file FILE.
CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified.