| Index: runtime/vm/instructions_arm.h
|
| ===================================================================
|
| --- runtime/vm/instructions_arm.h (revision 19723)
|
| +++ runtime/vm/instructions_arm.h (working copy)
|
| @@ -10,37 +10,22 @@
|
| #error Do not include instructions_arm.h directly; use instructions.h instead.
|
| #endif
|
|
|
| +#include "vm/constants_arm.h"
|
| #include "vm/object.h"
|
|
|
| namespace dart {
|
|
|
| -// Abstract class for all instruction pattern classes.
|
| -class InstructionPattern : public ValueObject {
|
| +class CallPattern : public ValueObject {
|
| public:
|
| - explicit InstructionPattern(uword pc) : end_(reinterpret_cast<uword*>(pc)) {
|
| - ASSERT(pc != 0);
|
| - }
|
| - virtual ~InstructionPattern() { }
|
| -
|
| - protected:
|
| - uword Back(int n) const;
|
| -
|
| - private:
|
| - const uword* end_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(InstructionPattern);
|
| -};
|
| -
|
| -
|
| -class CallPattern : public InstructionPattern {
|
| - public:
|
| CallPattern(uword pc, const Code& code);
|
|
|
| uword TargetAddress() const;
|
| void SetTargetAddress(uword target_address) const;
|
|
|
| private:
|
| + uword Back(int n) const;
|
| int DecodePoolIndex();
|
| + const uword* end_;
|
| const int pool_index_;
|
| const Array& object_pool_;
|
|
|
| @@ -48,20 +33,23 @@
|
| };
|
|
|
|
|
| -class JumpPattern : public InstructionPattern {
|
| +class JumpPattern : public ValueObject {
|
| public:
|
| - explicit JumpPattern(uword pc) : InstructionPattern(pc) { }
|
| + explicit JumpPattern(uword pc);
|
|
|
| - static const int kLengthInBytes = 3*kWordSize;
|
| + static const int kLengthInBytes = 3 * Instr::kInstrSize;
|
|
|
| int pattern_length_in_bytes() const {
|
| return kLengthInBytes;
|
| }
|
| +
|
| bool IsValid() const;
|
| uword TargetAddress() const;
|
| void SetTargetAddress(uword target_address) const;
|
|
|
| private:
|
| + const uword pc_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(JumpPattern);
|
| };
|
|
|
|
|