Commit a64ddde5 by John Hassey

(output_call): Avoid use of jsr.n r1, this loses on

        the 88110.

From-SVN: r5285
parent cfb557c4
...@@ -868,14 +868,20 @@ output_call (operands, addr) ...@@ -868,14 +868,20 @@ output_call (operands, addr)
If we loose, we must use the non-delay form. This is unlikely If we loose, we must use the non-delay form. This is unlikely
to ever happen. If it becomes a problem, claim that a call to ever happen. If it becomes a problem, claim that a call
has two delay slots and only the second can be filled with has two delay slots and only the second can be filled with
a jump. */ a jump.
The 88110 can lose when a jsr.n r1 is issued and a page fault
occurs accessing the delay slot. So don't use jsr.n form when
jumping thru r1.
*/
#ifdef AS_BUG_IMMEDIATE_LABEL /* The assembler restricts immediate values. */ #ifdef AS_BUG_IMMEDIATE_LABEL /* The assembler restricts immediate values. */
if (optimize < 2 if (optimize < 2
|| ! ADD_INTVAL (delta * 2)) || ! ADD_INTVAL (delta * 2)
#else #else
if (optimize < 2 if (optimize < 2
|| ! ADD_INTVAL (delta)) || ! ADD_INTVAL (delta)
#endif #endif
|| (REG_P (addr) && REGNO (addr) == 1))
{ {
operands[1] = dest; operands[1] = dest;
return (REG_P (addr) return (REG_P (addr)
......
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