Commit 29bd4eb3 by Michael Meissner

Fix indirect function pointers on eABI.

From-SVN: r8857
parent 59be85d7
...@@ -4587,10 +4587,13 @@ ...@@ -4587,10 +4587,13 @@
operands[0] = XEXP (operands[0], 0); operands[0] = XEXP (operands[0], 0);
if (GET_CODE (operands[0]) != SYMBOL_REF) if (GET_CODE (operands[0]) != SYMBOL_REF)
{ {
#ifndef USING_SVR4_H
/* AIX function pointers are really pointers to a three word area */
rtx temp = gen_reg_rtx (SImode); rtx temp = gen_reg_rtx (SImode);
emit_insn (gen_call_via_ptr (temp, force_reg (SImode, operands[0]))); emit_insn (gen_call_via_ptr (temp, force_reg (SImode, operands[0])));
operands[0] = temp; operands[0] = temp;
#endif /* !USING_SVR4_H */
} }
}") }")
...@@ -4608,10 +4611,13 @@ ...@@ -4608,10 +4611,13 @@
operands[1] = XEXP (operands[1], 0); operands[1] = XEXP (operands[1], 0);
if (GET_CODE (operands[1]) != SYMBOL_REF) if (GET_CODE (operands[1]) != SYMBOL_REF)
{ {
#ifndef USING_SVR4_H
/* AIX function pointers are really pointers to a three word area */
rtx temp = gen_reg_rtx (SImode); rtx temp = gen_reg_rtx (SImode);
emit_insn (gen_call_via_ptr (temp, force_reg (SImode, operands[1]))); emit_insn (gen_call_via_ptr (temp, force_reg (SImode, operands[1])));
operands[1] = temp; operands[1] = temp;
#endif /* !USING_SVR4_H */
} }
}") }")
......
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