V4 JIT: fix LookupCall on ARM
authorErik Verbruggen <erik.verbruggen@digia.com>
Mon, 11 Aug 2014 11:15:34 +0000 (13:15 +0200)
committerErik Verbruggen <erik.verbruggen@digia.com>
Tue, 12 Aug 2014 08:46:17 +0000 (10:46 +0200)
commit109abdb061263c28ae97424729e979cd0ff8289a
tree9e224b11e4477a3798a37ad0903ffc97f0409047
parent70d73e8ee4cbe87d2980a9ec1208515ef212119b
V4 JIT: fix LookupCall on ARM

To generate a LookupCall, the register r8 was used on ARM instead of the
ReturnValue register. The reason is that the ReturnValue register is
also the register for the first argument. However, now that we use
callee-saved registers (r8 among them), this would clobber any value
stored in r8. The fix is to actually use r0 to calculate the value,
because the first argument holds the lookup table, and the call is
relative to that. This leaves r8 free to be used by the register
allocator.

Change-Id: I5095bf69d27e16111ad32d9e5d5691c7bce14516
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
src/qml/jit/qv4assembler_p.h
src/qml/jit/qv4isel_masm_p.h