|
From: Nuno L. <nun...@sa...> - 2008-04-25 22:29:52
Attachments:
timings.txt
|
Hi, I've produced a patch that implements a 'call $absolute_addr' in x86, without the need to move the address to a register first and then do the call based on the register value. It's implemented with a simple relocation table. Patch: http://web.ist.utl.pt/nuno.lopes/vex_relocate_abs_calls.txt Currently the patch only targets the x86 arch, but we'll port it to x86-64 soon (btw, does ppc needs this as well?). Others archs also need some tweaking in order to run (i.e. update the emit*() functions), but we'll do it as soon as you consider the patch for inclusion in the core. Later we can also easily extend the patch to relocate jumps to absolute locations as well. Attached you'll find the results of the 'perf' tests. The tests were run on a Pentium-M 2.0 Ghz with 2MB of cache (I suspect I need a CPU with less cache in order to see even better results :P). Regards, Nuno |