| Index: src/arm/assembler-arm.h
|
| diff --git a/src/arm/assembler-arm.h b/src/arm/assembler-arm.h
|
| index ccb5104206883e9891fce042208538cd8dab2613..fea69b5e032141199fce1c81c3cd8feb7171e88d 100644
|
| --- a/src/arm/assembler-arm.h
|
| +++ b/src/arm/assembler-arm.h
|
| @@ -780,9 +780,27 @@ class Assembler : public AssemblerBase {
|
| // the branch/call instruction at pc, or the object in a mov.
|
| INLINE(static Address target_pointer_address_at(Address pc));
|
|
|
| + // Return the address in the constant pool of the code target address used by
|
| + // the branch/call instruction at pc, or the object in a mov.
|
| + INLINE(static Address target_constant_pool_address_at(
|
| + Address pc, ConstantPoolArray* constant_pool));
|
| +
|
| // Read/Modify the code target address in the branch/call instruction at pc.
|
| - INLINE(static Address target_address_at(Address pc));
|
| - INLINE(static void set_target_address_at(Address pc, Address target));
|
| + INLINE(static Address target_address_at(Address pc,
|
| + ConstantPoolArray* constant_pool));
|
| + INLINE(static void set_target_address_at(Address pc,
|
| + ConstantPoolArray* constant_pool,
|
| + Address target));
|
| + INLINE(static Address target_address_at(Address pc, Code* code)) {
|
| + ConstantPoolArray* constant_pool = code ? code->constant_pool() : NULL;
|
| + return target_address_at(pc, constant_pool);
|
| + }
|
| + INLINE(static void set_target_address_at(Address pc,
|
| + Code* code,
|
| + Address target)) {
|
| + ConstantPoolArray* constant_pool = code ? code->constant_pool() : NULL;
|
| + set_target_address_at(pc, constant_pool, target);
|
| + }
|
|
|
| // Return the code target address at a call site from the return address
|
| // of that call in the instruction stream.
|
| @@ -795,7 +813,7 @@ class Assembler : public AssemblerBase {
|
| // This sets the branch destination (which is in the constant pool on ARM).
|
| // This is for calls and branches within generated code.
|
| inline static void deserialization_set_special_target_at(
|
| - Address constant_pool_entry, Address target);
|
| + Address constant_pool_entry, Code* code, Address target);
|
|
|
| // Here we are patching the address in the constant pool, not the actual call
|
| // instruction. The address in the constant pool is the same size as a
|
|
|