| Index: src/ia32/assembler-ia32.h
|
| ===================================================================
|
| --- src/ia32/assembler-ia32.h (revision 7948)
|
| +++ src/ia32/assembler-ia32.h (working copy)
|
| @@ -251,23 +251,6 @@
|
| }
|
|
|
|
|
| -enum Hint {
|
| - no_hint = 0,
|
| - not_taken = 0x2e,
|
| - taken = 0x3e
|
| -};
|
| -
|
| -
|
| -// The result of negating a hint is as if the corresponding condition
|
| -// were negated by NegateCondition. That is, no_hint is mapped to
|
| -// itself and not_taken and taken are mapped to each other.
|
| -inline Hint NegateHint(Hint hint) {
|
| - return (hint == no_hint)
|
| - ? no_hint
|
| - : ((hint == not_taken) ? taken : not_taken);
|
| -}
|
| -
|
| -
|
| // -----------------------------------------------------------------------------
|
| // Machine instruction Immediates
|
|
|
| @@ -298,6 +281,7 @@
|
| RelocInfo::Mode rmode_;
|
|
|
| friend class Assembler;
|
| + friend class MacroAssembler;
|
| };
|
|
|
|
|
| @@ -849,7 +833,6 @@
|
| // but it may be bound only once.
|
|
|
| void bind(Label* L); // binds an unbound label L to the current code position
|
| - void bind(NearLabel* L);
|
|
|
| // Calls
|
| void call(Label* L);
|
| @@ -862,22 +845,19 @@
|
| unsigned ast_id = kNoASTId);
|
|
|
| // Jumps
|
| - void jmp(Label* L); // unconditional jump to L
|
| + // unconditional jump to L
|
| + void jmp(Label* L, Label::Distance distance = Label::kFar);
|
| void jmp(byte* entry, RelocInfo::Mode rmode);
|
| void jmp(const Operand& adr);
|
| void jmp(Handle<Code> code, RelocInfo::Mode rmode);
|
|
|
| - // Short jump
|
| - void jmp(NearLabel* L);
|
| -
|
| // Conditional jumps
|
| - void j(Condition cc, Label* L, Hint hint = no_hint);
|
| - void j(Condition cc, byte* entry, RelocInfo::Mode rmode, Hint hint = no_hint);
|
| - void j(Condition cc, Handle<Code> code, Hint hint = no_hint);
|
| + void j(Condition cc,
|
| + Label* L,
|
| + Label::Distance distance = Label::kFar);
|
| + void j(Condition cc, byte* entry, RelocInfo::Mode rmode);
|
| + void j(Condition cc, Handle<Code> code);
|
|
|
| - // Conditional short jump
|
| - void j(Condition cc, NearLabel* L, Hint hint = no_hint);
|
| -
|
| // Floating-point operations
|
| void fld(int i);
|
| void fstp(int i);
|
| @@ -1125,6 +1105,7 @@
|
| inline Displacement disp_at(Label* L);
|
| inline void disp_at_put(Label* L, Displacement disp);
|
| inline void emit_disp(Label* L, Displacement::Type type);
|
| + inline void emit_near_disp(Label* L);
|
|
|
| // record reloc info for current pc_
|
| void RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data = 0);
|
| @@ -1143,9 +1124,6 @@
|
| byte* pc_; // the program counter; moves forward
|
| RelocInfoWriter reloc_info_writer;
|
|
|
| - // push-pop elimination
|
| - byte* last_pc_;
|
| -
|
| PositionsRecorder positions_recorder_;
|
|
|
| bool emit_debug_code_;
|
|
|