}
-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) {
EnsureSpace ensure_space(this);
last_pc_ = pc_;
// 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
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);
}
}