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_ |