|Summary:||MacroAssemblerX86 8-bit register ops unsafe on CPU(X86)|
|Product:||WebKit||Reporter:||Gavin Barraclough <barraclough>|
|Version:||528+ (Nightly build)|
Description Gavin Barraclough 2011-10-12 17:02:51 PDT
Certain ops are unsafe if the register passed is esp..edi (will instead test/set the ). compare32/test8/test32 Call setCC, which sets an 8-bit register - we can fix this by adding a couple of xchg instructions. branchTest8 with a register argument is also affected. In all cases this is currently used this is testing a value that is correct to 32 or more bits, so we can simply switch these to branchTest32 & remove the corresponding branchTest8 (this is desirable anyway, since the 32-bit form is cheaper to implement on platforms that don't have an 8-bit compare instruction). This fixes the remaining fast/js failures with the DFG JIT 32_64.
Comment 2 WebKit Review Bot 2011-10-12 17:09:47 PDT