Reviewers: titzer,
Message:
PTAL. As discussed, this will be tested
byhttps://codereview.chromium.org/1269683002/, but I will add an explicit
test
when I return from vacation on Aug 10th.
Description:
[turbofan] Fix kArchTailCallCodeObject on ia32/x64.
Previously these instructions tried to jump to the value at the code entry's
location, rather than jumping to this location. Also adds a test.
BUG=v8:4280
LOG=N
Please review this at https://codereview.chromium.org/1265723003/
Base URL:
ssh://rmcilroy.lon.corp.google.com///usr/local/google/code/v8_full/v8@inter_linkage_change
Affected files (+4, -3 lines):
M src/compiler/ia32/code-generator-ia32.cc
M src/compiler/x64/code-generator-x64.cc
Index: src/compiler/ia32/code-generator-ia32.cc
diff --git a/src/compiler/ia32/code-generator-ia32.cc
b/src/compiler/ia32/code-generator-ia32.cc
index
4690a8cc05d869893778ed9f12c229b2b10f88c5..12eb42448609fad66a009c6d8116812921283bb0
100644
--- a/src/compiler/ia32/code-generator-ia32.cc
+++ b/src/compiler/ia32/code-generator-ia32.cc
@@ -318,7 +318,8 @@ void
CodeGenerator::AssembleArchInstruction(Instruction* instr) {
__ jmp(code, RelocInfo::CODE_TARGET);
} else {
Register reg = i.InputRegister(0);
- __ jmp(Operand(reg, Code::kHeaderSize - kHeapObjectTag));
+ __ add(reg, Immediate(Code::kHeaderSize - kHeapObjectTag));
+ __ jmp(reg);
}
break;
}
Index: src/compiler/x64/code-generator-x64.cc
diff --git a/src/compiler/x64/code-generator-x64.cc
b/src/compiler/x64/code-generator-x64.cc
index
bdce0832011e4ce8a1c21a301c1672535e7f7171..56477d66b66c9baa0d527da7ed3554d1d69f4e0a
100644
--- a/src/compiler/x64/code-generator-x64.cc
+++ b/src/compiler/x64/code-generator-x64.cc
@@ -567,8 +567,8 @@ void
CodeGenerator::AssembleArchInstruction(Instruction* instr) {
__ jmp(code, RelocInfo::CODE_TARGET);
} else {
Register reg = i.InputRegister(0);
- int entry = Code::kHeaderSize - kHeapObjectTag;
- __ jmp(Operand(reg, entry));
+ __ addp(reg, Immediate(Code::kHeaderSize - kHeapObjectTag));
+ __ jmp(reg);
}
break;
}
--
--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.