| Index: runtime/vm/instructions_x64.h
|
| diff --git a/runtime/vm/instructions_x64.h b/runtime/vm/instructions_x64.h
|
| index 5d7616dd4064dfc54aba279c26c01be4e05c0841..4c4aae833deaf66594d7c7f48adeebf5ae450fd3 100644
|
| --- a/runtime/vm/instructions_x64.h
|
| +++ b/runtime/vm/instructions_x64.h
|
| @@ -65,6 +65,30 @@ template<class P> class InstructionPattern : public ValueObject {
|
| };
|
|
|
|
|
| +class JumpPattern : public InstructionPattern<JumpPattern> {
|
| + public:
|
| + JumpPattern(uword pc, const Code& code)
|
| + : InstructionPattern(pc),
|
| + object_pool_(ObjectPool::Handle(code.GetObjectPool())) {}
|
| +
|
| + uword TargetAddress() const;
|
| + void SetTargetAddress(uword new_target) const;
|
| +
|
| + static const int kLengthInBytes = 7;
|
| + static int pattern_length_in_bytes() { return kLengthInBytes; }
|
| + static const int* pattern() {
|
| + // 07: 41 ff a7 imm32 jmpq [reg + off]
|
| + static const int kJumpPattern[kLengthInBytes] =
|
| + {0x41, 0xFF, -1, -1, -1, -1, -1};
|
| + return kJumpPattern;
|
| + }
|
| + private:
|
| + const ObjectPool& object_pool_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(JumpPattern);
|
| +};
|
| +
|
| +
|
| // 5 byte call instruction.
|
| class ShortCallPattern : public InstructionPattern<ShortCallPattern> {
|
| public:
|
|
|