OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 // Classes that describe assembly patterns as used by inline caches. | 4 // Classes that describe assembly patterns as used by inline caches. |
5 | 5 |
6 #ifndef VM_INSTRUCTIONS_IA32_H_ | 6 #ifndef VM_INSTRUCTIONS_IA32_H_ |
7 #define VM_INSTRUCTIONS_IA32_H_ | 7 #define VM_INSTRUCTIONS_IA32_H_ |
8 | 8 |
9 #ifndef VM_INSTRUCTIONS_H_ | 9 #ifndef VM_INSTRUCTIONS_H_ |
10 #error Do not include instructions_ia32.h directly; use instructions.h instead. | 10 #error Do not include instructions_ia32.h directly; use instructions.h instead. |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 public: | 88 public: |
89 JumpPattern(uword pc, const Code& code) : CallOrJumpPattern(pc) {} | 89 JumpPattern(uword pc, const Code& code) : CallOrJumpPattern(pc) {} |
90 | 90 |
91 private: | 91 private: |
92 virtual const int* pattern() const; | 92 virtual const int* pattern() const; |
93 | 93 |
94 DISALLOW_COPY_AND_ASSIGN(JumpPattern); | 94 DISALLOW_COPY_AND_ASSIGN(JumpPattern); |
95 }; | 95 }; |
96 | 96 |
97 | 97 |
| 98 class ReturnPattern : public InstructionPattern { |
| 99 public: |
| 100 explicit ReturnPattern(uword pc) : InstructionPattern(pc) {} |
| 101 |
| 102 virtual const int* pattern() const; |
| 103 virtual int pattern_length_in_bytes() const { return kLengthInBytes; } |
| 104 |
| 105 private: |
| 106 static const int kLengthInBytes = 1; |
| 107 }; |
| 108 |
98 } // namespace dart | 109 } // namespace dart |
99 | 110 |
100 #endif // VM_INSTRUCTIONS_IA32_H_ | 111 #endif // VM_INSTRUCTIONS_IA32_H_ |
OLD | NEW |