http://codereview.chromium.org/6410029/diff/2003/src/arm/deoptimizer-arm.cc File src/arm/deoptimizer-arm.cc (right):
http://codereview.chromium.org/6410029/diff/2003/src/arm/deoptimizer-arm.cc#newcode129 src/arm/deoptimizer-arm.cc:129: // 2a ?? ?? ?? bcs ok On 2011/02/04 13:54:27, Søren Gjesse wrote:
?? ?? ?? -> 00 00 01, the restoring puts in 1 here.
Done. http://codereview.chromium.org/6410029/diff/2003/src/arm/deoptimizer-arm.cc#newcode132 src/arm/deoptimizer-arm.cc:132: ASSERT(Memory::uint32_at(pc_after - 4) == 0xe12fff3c); On 2011/02/04 13:54:27, Søren Gjesse wrote:
0xe12fff3c -> al | B24 | B21 | 15*B16 | 15*B12 | 15*B8 | BLX |
ip.code() Done. http://codereview.chromium.org/6410029/diff/2003/src/arm/deoptimizer-arm.cc#newcode132 src/arm/deoptimizer-arm.cc:132: ASSERT(Memory::uint32_at(pc_after - 4) == 0xe12fff3c); On 2011/02/04 13:54:27, Søren Gjesse wrote:
4 -> kInstrSize
Done. http://codereview.chromium.org/6410029/diff/2003/src/arm/deoptimizer-arm.cc#newcode133 src/arm/deoptimizer-arm.cc:133: ASSERT(Memory::uint8_at(pc_after - 5) == 0xe5); On 2011/02/04 13:54:27, Søren Gjesse wrote:
Use Assembler::IsLdrPcImmediateOffset() to check this. Maybe add Assembler::IsLdrPcImmediateOffset() which also takes a register and
checks that
it is ldr ip, [...
Done. http://codereview.chromium.org/6410029/diff/2003/src/arm/deoptimizer-arm.cc#newcode145 src/arm/deoptimizer-arm.cc:145: Memory::uint32_at(pc_after - 12) = 0xe1a00000; On 2011/02/04 13:54:27, Søren Gjesse wrote:
I think you should be able to use the code patcher here:
CodePatcher patcher(pc_after - 3 * kInstrSize, 1) patcher.masm()->nop();
if not
0xe1a00000 -> al | MOV
Done. http://codereview.chromium.org/6410029/diff/2003/src/arm/deoptimizer-arm.cc#newcode167 src/arm/deoptimizer-arm.cc:167: Memory::uint32_at(pc_after - 12) = 0x2a000001; I used the CodePatcher. http://codereview.chromium.org/6410029/diff/2003/src/deoptimizer.cc File src/deoptimizer.cc (right): http://codereview.chromium.org/6410029/diff/2003/src/deoptimizer.cc#newcode837 src/deoptimizer.cc:837: uint32_t length = last_site - first_site + patch_size(); Done. I used the code patcher and removed the flushing here. http://codereview.chromium.org/6410029/diff/2003/src/deoptimizer.cc#newcode867 src/deoptimizer.cc:867: uint32_t length = last_site - first_site + patch_size(); Done. I used the code patcher and removed the flushing here. http://codereview.chromium.org/6410029/ -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
