On Sat, 31 Dec 2011, Matt Davis wrote:
> Hi, > I am having an RTL problem trying to make a function call from a > COND_EXEC rtx. The reload pass has been called, and very simply I > want to compare on an 64bit x86 %rdx with a specific integer value, > and if that value is true, my function call executes. I can call the > function fine outside of the conditional, but when I set it in the > conditional expression, I get the following error: > > test.c:6:1: error: unrecognizable insn: Indeed, x86 does not have a "conditional call" instruction. You would have to generate the call in a separate basic block and add a conditional branch instruction around it. You can reference the following code, which attempts to convert any COND_EXECs to explicit control flow: http://gcc.gnu.org/ml/gcc-patches/2011-10/msg02383.html (but you will probably need to additionally generate comparison instructions). Hope that helps, Alexander