Reviewers: William Hesse,

Message:
Small review.

Description:
X64: Remove restriction on using r12 as index register.

Please review this at http://codereview.chromium.org/126045

Affected files:
   M src/x64/assembler-x64-inl.h
   M src/x64/assembler-x64.cc


Index: src/x64/assembler-x64-inl.h
diff --git a/src/x64/assembler-x64-inl.h b/src/x64/assembler-x64-inl.h
index  
397b02341c25d03adc181385ebc18c5fcf09d0fe..0b94a4082bfc77cec2aae358de2ea29a8caa887d
  
100644
--- a/src/x64/assembler-x64-inl.h
+++ b/src/x64/assembler-x64-inl.h
@@ -260,7 +260,8 @@ void Operand::set_modrm(int mod, Register rm) {
  void Operand::set_sib(ScaleFactor scale, Register index, Register base) {
    ASSERT(len_ == 1);
    ASSERT(is_uint2(scale));
-  // Use SIB with no index register only for base rsp or r12.
+  // Use SIB with no index register only for base rsp or r12. Otherwise we
+  // would skip the SIB byte entirely.
    ASSERT(!index.is(rsp) || base.is(rsp) || base.is(r12));
    buf_[1] = scale << 6 | (index.code() & 0x7) << 3 | (base.code() & 0x7);
    rex_ |= (index.code() >> 3) << 1 | base.code() >> 3;
Index: src/x64/assembler-x64.cc
diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc
index  
46259f43ec274221e9d3d6ae96bff6d0b3a7b833..07e9e45e69fb30804a53a111fbef8ed92c7ffce5
  
100644
--- a/src/x64/assembler-x64.cc
+++ b/src/x64/assembler-x64.cc
@@ -96,12 +96,12 @@ Operand::Operand(Register base,
                   Register index,
                   ScaleFactor scale,
                   int32_t disp): rex_(0) {
-  ASSERT(!index.is(rsp) && !index.is(r12));
+  ASSERT(!index.is(rsp));
    len_ = 1;
    set_sib(scale, index, base);
    if (disp == 0 && !base.is(rbp) && !base.is(r13)) {
-    // The call to set_modrm doesn't overwrite the REX.B bit possibly set
-    // by set_sib.
+    // This call to set_modrm doesn't overwrite the REX.B (or REX.X) bits
+    // possibly set by set_sib.
      set_modrm(0, rsp);
    } else if (is_int8(disp)) {
      set_modrm(1, rsp);



--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to