Chromium Code Reviews| Index: src/x64/assembler-x64.h |
| diff --git a/src/x64/assembler-x64.h b/src/x64/assembler-x64.h |
| index 209aa2d3070e48da7890e9457e64fe4718cfd782..49a38603b5faf943b4cb0cdf0a7ec220c353c5d1 100644 |
| --- a/src/x64/assembler-x64.h |
| +++ b/src/x64/assembler-x64.h |
| @@ -25,3 +25,70 @@ |
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| +#ifndef V8_X64_ASSEMBLER_X64_H_ |
| +#define V8_X64_ASSEMBLER_X64_H_ |
| + |
| +// TODO(x64): This is a temporary stub, we will need to implement this code. |
| + |
| +namespace v8 { namespace internal { |
| + |
| +struct Register { |
| + bool is_valid() const { return 0 <= code_ && code_ < 8; } |
| + bool is(Register reg) const { return code_ == reg.code_; } |
| + // eax, ebx, ecx and edx are byte registers, the rest are not. |
| + bool is_byte_register() const { return code_ <= 3; } |
| + int code() const { |
| + ASSERT(is_valid()); |
| + return code_; |
| + } |
| + int bit() const { |
| + ASSERT(is_valid()); |
| + return 1 << code_; |
| + } |
| + |
| + // (unfortunately we can't make this private in a struct) |
|
Kevin Millikin (Chromium)
2009/05/05 15:48:00
I've never liked this comment.
|
| + int code_; |
| +}; |
| + |
| +const int kNumRegisters = 8; |
| +extern Register no_reg; |
| + |
| +enum Condition { |
| + // any value < 0 is considered no_condition |
| + no_condition = -1, |
| + |
| + overflow = 0, |
| + no_overflow = 1, |
| + below = 2, |
| + above_equal = 3, |
| + equal = 4, |
| + not_equal = 5, |
| + below_equal = 6, |
| + above = 7, |
| + negative = 8, |
| + positive = 9, |
| + parity_even = 10, |
| + parity_odd = 11, |
| + less = 12, |
| + greater_equal = 13, |
| + less_equal = 14, |
| + greater = 15, |
| + |
| + // aliases |
| + carry = below, |
| + not_carry = above_equal, |
| + zero = equal, |
| + not_zero = not_equal, |
| + sign = negative, |
| + not_sign = positive |
| +}; |
| + |
| +enum Hint { |
| + no_hint = 0, |
| + not_taken = 0x2e, |
| + taken = 0x3e |
| +}; |
| + |
| +} } // namespace v8::internal |
| + |
| +#endif // V8_X64_ASSEMBLER_X64_H_ |