Revision: 6489
Author: [email protected]
Date: Wed Jan 26 05:24:19 2011
Log: X64 Crankshaft: Remove relative jump to deoptimization code. Fixes
logical error, and compilation error on Windows.
Review URL: http://codereview.chromium.org/6310018
http://code.google.com/p/v8/source/detail?r=6489
Modified:
/branches/bleeding_edge/src/x64/assembler-x64.cc
/branches/bleeding_edge/src/x64/assembler-x64.h
/branches/bleeding_edge/src/x64/lithium-codegen-x64.cc
=======================================
--- /branches/bleeding_edge/src/x64/assembler-x64.cc Tue Jan 25 03:30:47
2011
+++ /branches/bleeding_edge/src/x64/assembler-x64.cc Wed Jan 26 05:24:19
2011
@@ -1304,18 +1304,6 @@
L->link_to(pc_offset());
}
}
-
-
-void Assembler::j(Condition cc, byte* entry, RelocInfo::Mode rmode) {
- EnsureSpace ensure_space(this);
- RecordRelocInfo(rmode);
- last_pc_ = pc_;
- ASSERT((0 <= cc) && (cc < 16));
- // 0000 1111 1000 tttn #32-bit disp.
- emit(0x0F);
- emit(0x80 | cc);
- emit(entry - (pc_ + sizeof(intptr_t)));
-}
void Assembler::jmp(Label* L) {
=======================================
--- /branches/bleeding_edge/src/x64/assembler-x64.h Tue Jan 25 03:30:47 2011
+++ /branches/bleeding_edge/src/x64/assembler-x64.h Wed Jan 26 05:24:19 2011
@@ -1134,7 +1134,6 @@
// Conditional jumps
void j(Condition cc, Label* L);
- void j(Condition cc, byte* entry, RelocInfo::Mode rmode);
void j(Condition cc, Handle<Code> target, RelocInfo::Mode rmode);
// Conditional short jump
=======================================
--- /branches/bleeding_edge/src/x64/lithium-codegen-x64.cc Wed Jan 26
00:03:48 2011
+++ /branches/bleeding_edge/src/x64/lithium-codegen-x64.cc Wed Jan 26
05:24:19 2011
@@ -429,7 +429,10 @@
if (cc == no_condition) {
__ Jump(entry, RelocInfo::RUNTIME_ENTRY);
} else {
- __ j(cc, entry, RelocInfo::RUNTIME_ENTRY);
+ NearLabel done;
+ __ j(NegateCondition(cc), &done);
+ __ Jump(entry, RelocInfo::RUNTIME_ENTRY);
+ __ bind(&done);
}
}
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev