[llvm-commits] (patch) PR7608 ARMv4 JIT forgets to set the lr register when making a indirect function call

Jakob Stoklund Olesen stoklund at 2pi.dk
Mon Jul 12 13:38:43 PDT 2010


On Jul 12, 2010, at 1:23 PM, Xerxes Ranby wrote:

> I have got the understanding that by flagging two instructions together 
> are the mechanism to use in order to prevent something-else from getting 
> scheduled in between.
> Have this changed?

No, this is still true. The instructions will be /scheduled/ together.

There is a lot of stuff going on after scheduling, though. There is no guarantee that instructions won't be inserted by a later pass.

For instance:

mov lr, pc
bx %reg1234

If %reg1234 is spilled, a reload will be inserted immediately before the call:

mov lr, pc
ldr r4, [sp..]
bx r4

We don't currently have a way of gluing instructions together except using pseudo-instructions.






More information about the llvm-commits mailing list