#include <assembler.hpp>
Inheritance diagram for Assembler:
Public Types | |
zero = 0x4 | |
notZero = 0x5 | |
equal = 0x4 | |
notEqual = 0x5 | |
less = 0xc | |
lessEqual = 0xe | |
greater = 0xf | |
greaterEqual = 0xd | |
below = 0x2 | |
belowEqual = 0x6 | |
above = 0x7 | |
aboveEqual = 0x3 | |
overflow = 0x0 | |
noOverflow = 0x1 | |
carrySet = 0x2 | |
carryClear = 0x3 | |
negative = 0x8 | |
positive = 0x9 | |
sizeOfCall = 5 | |
enum | Condition { zero = 0x4, notZero = 0x5, equal = 0x4, notEqual = 0x5, less = 0xc, lessEqual = 0xe, greater = 0xf, greaterEqual = 0xd, below = 0x2, belowEqual = 0x6, above = 0x7, aboveEqual = 0x3, overflow = 0x0, noOverflow = 0x1, carrySet = 0x2, carryClear = 0x3, negative = 0x8, positive = 0x9 } |
enum | Constants { sizeOfCall = 5 } |
Public Member Functions | |
Assembler (CodeBuffer *code) | |
void | finalize () |
CodeBuffer * | code () const |
char * | pc () const |
int | offset () const |
void | pushad () |
void | popad () |
void | pushl (int imm32) |
void | pushl (oop obj) |
void | pushl (Register src) |
void | pushl (Address src) |
void | popl (Register dst) |
void | popl (Address dst) |
void | movb (Register dst, Address src) |
void | movb (Address dst, int imm8) |
void | movb (Address dst, Register src) |
void | movw (Register dst, Address src) |
void | movw (Address dst, Register src) |
void | movl (Register dst, int imm32) |
void | movl (Register dst, oop obj) |
void | movl (Register dst, Register src) |
void | movl (Register dst, Address src) |
void | movl (Address dst, int imm32) |
void | movl (Address dst, oop obj) |
void | movl (Address dst, Register src) |
void | movsxb (Register dst, Address src) |
void | movsxb (Register dst, Register src) |
void | movsxw (Register dst, Address src) |
void | movsxw (Register dst, Register src) |
void | cmovccl (Condition cc, Register dst, int imm32) |
void | cmovccl (Condition cc, Register dst, oop obj) |
void | cmovccl (Condition cc, Register dst, Register src) |
void | cmovccl (Condition cc, Register dst, Address src) |
void | adcl (Register dst, int imm32) |
void | adcl (Register dst, Register src) |
void | addl (Address dst, int imm32) |
void | addl (Register dst, int imm32) |
void | addl (Register dst, Register src) |
void | andl (Register dst, int imm32) |
void | andl (Register dst, Register src) |
void | cmpl (Address dst, int imm32) |
void | cmpl (Address dst, oop obj) |
void | cmpl (Register dst, int imm32) |
void | cmpl (Register dst, oop obj) |
void | cmpl (Register dst, Register src) |
void | cmpl (Register dst, Address src) |
void | decb (Register dst) |
void | decl (Register dst) |
void | idivl (Register src) |
void | imull (Register dst, Register src) |
void | imull (Register dst, Register src, int value) |
void | incl (Register dst) |
void | incl (Address dst) |
void | leal (Register dst, Address src) |
void | mull (Register src) |
void | negl (Register dst) |
void | notl (Register dst) |
void | orl (Register dst, int imm32) |
void | orl (Register dst, Register src) |
void | orl (Register dst, Address src) |
void | rcll (Register dst, int imm8) |
void | sarl (Register dst, int imm8) |
void | sarl (Register dst) |
void | sbbl (Register dst, int imm32) |
void | sbbl (Register dst, Register src) |
void | shldl (Register dst, Register src) |
void | shll (Register dst, int imm8) |
void | shll (Register dst) |
void | shrdl (Register dst, Register src) |
void | shrl (Register dst, int imm8) |
void | shrl (Register dst) |
void | subl (Register dst, int imm32) |
void | subl (Register dst, Register src) |
void | testb (Register dst, int imm8) |
void | testl (Register dst, int imm32) |
void | testl (Register dst, Register src) |
void | xorl (Register dst, int imm32) |
void | xorl (Register dst, Register src) |
void | hlt () |
void | int3 () |
void | nop () |
void | ret (int imm16) |
void | bind (Label &L) |
void | merge (Label &L, Label &with) |
void | call (Label &L) |
void | call (char *entry, relocInfo::relocType rtype) |
void | call (Register reg) |
void | call (Address adr) |
void | jmp (char *entry, relocInfo::relocType rtype) |
void | jmp (Register reg) |
void | jmp (Address adr) |
void | jmp (Label &L) |
void | jcc (Condition cc, char *dst, relocInfo::relocType rtype=relocInfo::runtime_call_type) |
void | jcc (Condition cc, Label &L) |
void | ic_info (Label &L, int flags) |
void | fld1 () |
void | fldz () |
void | fld_s (Address adr) |
void | fld_d (Address adr) |
void | fstp_s (Address adr) |
void | fstp_d (Address adr) |
void | fild_s (Address adr) |
void | fild_d (Address adr) |
void | fistp_s (Address adr) |
void | fistp_d (Address adr) |
void | fabs () |
void | fchs () |
void | fadd (int i) |
void | fsub (int i) |
void | fmul (int i) |
void | fdiv (int i) |
void | faddp (int i=1) |
void | fsubp (int i=1) |
void | fsubrp (int i=1) |
void | fmulp (int i=1) |
void | fdivp (int i=1) |
void | fprem () |
void | fprem1 () |
void | fxch (int i=1) |
void | fincstp () |
void | ffree (int i=0) |
void | ftst () |
void | fcompp () |
void | fnstsw_ax () |
void | fwait () |
void | Load (Register base, int disp, Register dst) |
void | Store (Register src, Register base, int disp) |
Protected Member Functions | |
char * | addr_at (int pos) |
int | byte_at (int pos) |
void | byte_at_put (int pos, int x) |
int | long_at (int pos) |
void | long_at_put (int pos, int x) |
bool | is8bit (int x) |
bool | isByte (int x) |
bool | isShiftCount (int x) |
void | emit_byte (int x) |
void | emit_long (int x) |
void | emit_data (int data, relocInfo::relocType rtype) |
void | emit_arith_b (int op1, int op2, Register dst, int imm8) |
void | emit_arith (int op1, int op2, Register dst, int imm32) |
void | emit_arith (int op1, int op2, Register dst, oop obj) |
void | emit_arith (int op1, int op2, Register dst, Register src) |
void | emit_operand (Register reg, Register base, Register index, Address::ScaleFactor scale, int disp, relocInfo::relocType rtype) |
void | emit_operand (Register reg, Address adr) |
void | emit_farith (int b1, int b2, int i) |
void | print (Label &L) |
void | bind_to (Label &L, int pos) |
void | link_to (Label &L, Label &appendix) |
Protected Attributes | |
CodeBuffer * | _code |
char * | _code_begin |
char * | _code_limit |
char * | _code_pos |
Label | _unbound_label |
int | _binding_pos |
Definition at line 134 of file assembler.hpp.
enum Assembler::Condition |
zero | |
notZero | |
equal | |
notEqual | |
less | |
lessEqual | |
greater | |
greaterEqual | |
below | |
belowEqual | |
above | |
aboveEqual | |
overflow | |
noOverflow | |
carrySet | |
carryClear | |
negative | |
positive |
Definition at line 177 of file assembler.hpp.
enum Assembler::Constants |
Assembler::Assembler | ( | CodeBuffer * | code | ) |
Definition at line 171 of file assembler.cpp.
References _code, _code_begin, _code_limit, and _code_pos.
Definition at line 526 of file assembler.cpp.
References emit_arith().
Here is the call graph for this function:
void Assembler::adcl | ( | Register | dst, | |
int | imm32 | |||
) |
Definition at line 521 of file assembler.cpp.
References emit_arith().
Here is the call graph for this function:
Definition at line 543 of file assembler.cpp.
References emit_arith().
Here is the call graph for this function:
void Assembler::addl | ( | Register | dst, | |
int | imm32 | |||
) |
Definition at line 538 of file assembler.cpp.
References emit_arith().
Here is the call graph for this function:
void Assembler::addl | ( | Address | dst, | |
int | imm32 | |||
) |
Definition at line 531 of file assembler.cpp.
References eax, emit_byte(), emit_long(), and emit_operand().
Referenced by InterpreterGenerator::advance_aligned(), MacroAssembler::call_C(), StubRoutines::generate_call_DLL(), StubRoutines::generate_continue_NLR(), StubRoutines::generate_verify_context_chain(), StubRoutines::generate_zombie_block_nmethod(), InterpreterGenerator::push_arg_n(), InterpreterGenerator::push_smi(), InterpreterGenerator::push_temp_n(), MacroAssembler::set_last_Delta_frame_after_call(), InterpreterGenerator::skip_words(), and InterpreterGenerator::store_temp_n().
Here is the call graph for this function:
char* Assembler::addr_at | ( | int | pos | ) | [inline, protected] |
Definition at line 145 of file assembler.hpp.
References _code_begin.
Referenced by byte_at(), byte_at_put(), long_at(), and long_at_put().
Definition at line 553 of file assembler.cpp.
References emit_arith().
Here is the call graph for this function:
void Assembler::andl | ( | Register | dst, | |
int | imm32 | |||
) |
Definition at line 548 of file assembler.cpp.
References emit_arith().
Referenced by InterpreterGenerator::advance_aligned(), StubRoutines::generate_megamorphic_ic(), and InterpreterGenerator::skip_words().
Here is the call graph for this function:
void Assembler::bind | ( | Label & | L | ) |
Definition at line 945 of file assembler.cpp.
References _binding_pos, _code_pos, _unbound_label, Displacement::absolute_jump, assert, bind_to(), byte_at(), code(), disp_at, Label::is_unbound(), L, link_to(), offset(), outputStream::print_cr(), and std.
Referenced by MacroAssembler::call_C(), InterpreterGenerator::check_ebx(), InterpreterGenerator::check_oop(), StubRoutines::generate_call_DLL(), Floats::generate_cmp(), StubRoutines::generate_megamorphic_ic(), StubRoutines::generate_PIC_stub(), Floats::generate_tst(), StubRoutines::generate_verify_context_chain(), InterpreterGenerator::jump_ebx(), and InterpreterGenerator::jump_edi().
Here is the call graph for this function:
void Assembler::bind_to | ( | Label & | L, | |
int | pos | |||
) | [protected] |
Definition at line 878 of file assembler.cpp.
References Displacement::absolute_jump, assert, byte_at(), Displacement::call, code(), Displacement::conditional_jump, disp_at, Displacement::ic_info, IC_Info::info_offset, L, long_at_put(), IC_Info::number_of_flags, offset(), and ShouldNotReachHere.
Referenced by bind(), and finalize().
Here is the call graph for this function:
int Assembler::byte_at | ( | int | pos | ) | [inline, protected] |
Definition at line 147 of file assembler.hpp.
References addr_at().
Referenced by bind(), and bind_to().
Here is the call graph for this function:
void Assembler::byte_at_put | ( | int | pos, | |
int | x | |||
) | [inline, protected] |
Definition at line 148 of file assembler.hpp.
References addr_at().
Here is the call graph for this function:
void Assembler::call | ( | Address | adr | ) |
Definition at line 1015 of file assembler.cpp.
References edx, emit_byte(), and emit_operand().
Here is the call graph for this function:
void Assembler::call | ( | Register | reg | ) |
Definition at line 1009 of file assembler.cpp.
References emit_byte(), and Register::number().
Here is the call graph for this function:
void Assembler::call | ( | char * | entry, | |
relocInfo::relocType | rtype | |||
) |
Definition at line 1003 of file assembler.cpp.
References _code_pos, emit_byte(), and emit_data().
Here is the call graph for this function:
void Assembler::call | ( | Label & | L | ) |
Definition at line 987 of file assembler.cpp.
References assert, Displacement::call, emit_byte(), emit_disp, emit_long(), L, and offset().
Referenced by MacroAssembler::call_C(), StubRoutines::generate_call_DLL(), StubRoutines::generate_call_inspector(), StubRoutines::generate_compile_block(), StubRoutines::generate_deoptimize_block(), StubRoutines::generate_ic_lookup(), StubRoutines::generate_lookup_DLL(), StubRoutines::generate_megamorphic_ic(), StubRoutines::generate_recompile_stub(), StubRoutines::generate_uncommon_trap(), StubRoutines::generate_verify_context_chain(), StubRoutines::generate_zombie_block_nmethod(), StubRoutines::generate_zombie_nmethod(), and MacroAssembler::inspect().
Here is the call graph for this function:
Definition at line 587 of file assembler.cpp.
References emit_byte(), and emit_operand().
Here is the call graph for this function:
Definition at line 582 of file assembler.cpp.
References emit_arith().
Here is the call graph for this function:
Definition at line 577 of file assembler.cpp.
References emit_arith().
Here is the call graph for this function:
void Assembler::cmpl | ( | Register | dst, | |
int | imm32 | |||
) |
Definition at line 572 of file assembler.cpp.
References emit_arith().
Here is the call graph for this function:
Definition at line 565 of file assembler.cpp.
References edi, emit_byte(), emit_data(), and emit_operand().
Here is the call graph for this function:
void Assembler::cmpl | ( | Address | dst, | |
int | imm32 | |||
) |
Definition at line 558 of file assembler.cpp.
References edi, emit_byte(), emit_long(), and emit_operand().
Referenced by StubRoutines::generate_call_DLL(), StubRoutines::generate_megamorphic_ic(), StubRoutines::generate_PIC_stub(), InterpreterGenerator::jump_ebx(), and InterpreterGenerator::jump_edi().
Here is the call graph for this function:
CodeBuffer* Assembler::code | ( | ) | const [inline] |
Definition at line 205 of file assembler.hpp.
References _code.
Referenced by bind(), bind_to(), emit_byte(), emit_data(), emit_long(), StubRoutines::generate(), Floats::generate(), InterpreterGenerator::info(), and Floats::init().
void Assembler::decb | ( | Register | dst | ) |
Definition at line 593 of file assembler.cpp.
References emit_byte(), guarantee, Register::hasByteRegister(), and Register::number().
Here is the call graph for this function:
void Assembler::decl | ( | Register | dst | ) |
Definition at line 600 of file assembler.cpp.
References emit_byte(), and Register::number().
Referenced by StubRoutines::generate_call_DLL().
Here is the call graph for this function:
Definition at line 244 of file assembler.cpp.
References assert, emit_byte(), isByte(), and Register::number().
Here is the call graph for this function:
Definition at line 234 of file assembler.cpp.
References assert, emit_byte(), emit_data(), isByte(), and Register::number().
Here is the call graph for this function:
void Assembler::emit_arith | ( | int | op1, | |
int | op2, | |||
Register | dst, | |||
int | imm32 | |||
) | [protected] |
Definition at line 218 of file assembler.cpp.
References assert, emit_byte(), emit_long(), is8bit(), isByte(), and Register::number().
Referenced by adcl(), addl(), andl(), cmpl(), orl(), sbbl(), subl(), testl(), and xorl().
Here is the call graph for this function:
void Assembler::emit_arith_b | ( | int | op1, | |
int | op2, | |||
Register | dst, | |||
int | imm8 | |||
) | [protected] |
Definition at line 207 of file assembler.cpp.
References assert, emit_byte(), guarantee, Register::hasByteRegister(), isByte(), and Register::number().
Referenced by testb().
Here is the call graph for this function:
void Assembler::emit_byte | ( | int | x | ) | [inline, protected] |
Definition at line 186 of file assembler.cpp.
References _code_pos, assert, code(), and isByte().
Referenced by addl(), call(), cmpl(), decb(), decl(), emit_arith(), emit_arith_b(), emit_farith(), emit_operand(), fabs(), fchs(), fcompp(), fild_d(), fild_s(), fincstp(), fistp_d(), fistp_s(), fld1(), fld_d(), fld_s(), fldz(), fnstsw_ax(), fprem(), fprem1(), fstp_d(), fstp_s(), ftst(), fwait(), hlt(), ic_info(), idivl(), imull(), incl(), MacroAssembler::inline_oop(), int3(), jcc(), jmp(), leal(), movb(), movl(), movsxb(), movsxw(), movw(), mull(), negl(), nop(), notl(), orl(), popad(), popl(), pushad(), pushl(), rcll(), ret(), sarl(), shldl(), shll(), shrdl(), shrl(), and testl().
Here is the call graph for this function:
void Assembler::emit_data | ( | int | data, | |
relocInfo::relocType | rtype | |||
) | [inline, protected] |
Definition at line 201 of file assembler.cpp.
References _code_pos, code(), and emit_long().
Referenced by call(), cmpl(), emit_arith(), emit_operand(), MacroAssembler::inline_oop(), jcc(), jmp(), movl(), and pushl().
Here is the call graph for this function:
void Assembler::emit_farith | ( | int | b1, | |
int | b2, | |||
int | i | |||
) | [protected] |
void Assembler::emit_long | ( | int | x | ) | [inline, protected] |
Definition at line 336 of file assembler.cpp.
References Address::_base, Address::_disp, Address::_index, Address::_rtype, Address::_scale, and emit_operand().
Here is the call graph for this function:
void Assembler::emit_operand | ( | Register | reg, | |
Register | base, | |||
Register | index, | |||
Address::ScaleFactor | scale, | |||
int | disp, | |||
relocInfo::relocType | rtype | |||
) | [protected] |
Definition at line 251 of file assembler.cpp.
References assert, ebp, emit_byte(), emit_data(), esp, is8bit(), Register::isValid(), Address::no_scale, and Register::number().
Referenced by addl(), call(), cmpl(), emit_operand(), fild_d(), fild_s(), fistp_d(), fistp_s(), fld_d(), fld_s(), fstp_d(), fstp_s(), incl(), jmp(), leal(), movb(), movl(), movsxb(), movsxw(), movw(), orl(), popl(), and pushl().
Here is the call graph for this function:
void Assembler::fabs | ( | ) |
Definition at line 1185 of file assembler.cpp.
References emit_byte().
Referenced by Floats::generate().
Here is the call graph for this function:
void Assembler::fadd | ( | int | i | ) |
Definition at line 1197 of file assembler.cpp.
References emit_farith().
Here is the call graph for this function:
void Assembler::faddp | ( | int | i = 1 |
) |
Definition at line 1217 of file assembler.cpp.
References emit_farith().
Referenced by Floats::generate().
Here is the call graph for this function:
void Assembler::fchs | ( | ) |
Definition at line 1191 of file assembler.cpp.
References emit_byte().
Referenced by Floats::generate().
Here is the call graph for this function:
void Assembler::fcompp | ( | ) |
Definition at line 1277 of file assembler.cpp.
References emit_byte().
Referenced by Floats::generate_cmp().
Here is the call graph for this function:
void Assembler::fdiv | ( | int | i | ) |
Definition at line 1212 of file assembler.cpp.
References emit_farith().
Here is the call graph for this function:
void Assembler::fdivp | ( | int | i = 1 |
) |
Definition at line 1237 of file assembler.cpp.
References emit_farith().
Referenced by Floats::generate().
Here is the call graph for this function:
void Assembler::ffree | ( | int | i = 0 |
) |
Definition at line 1266 of file assembler.cpp.
References emit_farith().
Referenced by MacroAssembler::fpop().
Here is the call graph for this function:
void Assembler::fild_d | ( | Address | adr | ) |
Definition at line 1167 of file assembler.cpp.
References ebp, emit_byte(), and emit_operand().
Here is the call graph for this function:
void Assembler::fild_s | ( | Address | adr | ) |
Definition at line 1161 of file assembler.cpp.
References eax, emit_byte(), and emit_operand().
Here is the call graph for this function:
void Assembler::finalize | ( | ) |
Definition at line 179 of file assembler.cpp.
References _binding_pos, _unbound_label, bind_to(), and Label::is_unbound().
Referenced by StubRoutines::init().
Here is the call graph for this function:
void Assembler::fincstp | ( | ) |
Definition at line 1260 of file assembler.cpp.
References emit_byte().
Referenced by MacroAssembler::fpop().
Here is the call graph for this function:
void Assembler::fistp_d | ( | Address | adr | ) |
Definition at line 1179 of file assembler.cpp.
References edi, emit_byte(), and emit_operand().
Here is the call graph for this function:
void Assembler::fistp_s | ( | Address | adr | ) |
Definition at line 1173 of file assembler.cpp.
References ebx, emit_byte(), and emit_operand().
Here is the call graph for this function:
void Assembler::fld1 | ( | ) |
Definition at line 1125 of file assembler.cpp.
References emit_byte().
Referenced by Floats::generate().
Here is the call graph for this function:
void Assembler::fld_d | ( | Address | adr | ) |
Definition at line 1143 of file assembler.cpp.
References eax, emit_byte(), and emit_operand().
Here is the call graph for this function:
void Assembler::fld_s | ( | Address | adr | ) |
Definition at line 1137 of file assembler.cpp.
References eax, emit_byte(), and emit_operand().
Here is the call graph for this function:
void Assembler::fldz | ( | ) |
Definition at line 1131 of file assembler.cpp.
References emit_byte().
Referenced by Floats::generate().
Here is the call graph for this function:
void Assembler::fmul | ( | int | i | ) |
Definition at line 1207 of file assembler.cpp.
References emit_farith().
Referenced by Floats::generate().
Here is the call graph for this function:
void Assembler::fmulp | ( | int | i = 1 |
) |
Definition at line 1232 of file assembler.cpp.
References emit_farith().
Referenced by Floats::generate().
Here is the call graph for this function:
void Assembler::fnstsw_ax | ( | ) |
Definition at line 1283 of file assembler.cpp.
References emit_byte().
Referenced by Floats::generate_cmp(), and Floats::generate_tst().
Here is the call graph for this function:
void Assembler::fprem | ( | ) |
Definition at line 1243 of file assembler.cpp.
References emit_byte().
Referenced by Floats::generate().
Here is the call graph for this function:
void Assembler::fprem1 | ( | ) |
Definition at line 1249 of file assembler.cpp.
References emit_byte().
Here is the call graph for this function:
void Assembler::fstp_d | ( | Address | adr | ) |
Definition at line 1155 of file assembler.cpp.
References ebx, emit_byte(), and emit_operand().
Here is the call graph for this function:
void Assembler::fstp_s | ( | Address | adr | ) |
Definition at line 1149 of file assembler.cpp.
References ebx, emit_byte(), and emit_operand().
Here is the call graph for this function:
void Assembler::fsub | ( | int | i | ) |
Definition at line 1202 of file assembler.cpp.
References emit_farith().
Here is the call graph for this function:
void Assembler::fsubp | ( | int | i = 1 |
) |
Definition at line 1222 of file assembler.cpp.
References emit_farith().
Referenced by Floats::generate().
Here is the call graph for this function:
void Assembler::fsubrp | ( | int | i = 1 |
) |
Definition at line 1227 of file assembler.cpp.
References emit_farith().
Here is the call graph for this function:
void Assembler::ftst | ( | ) |
Definition at line 1271 of file assembler.cpp.
References emit_byte().
Referenced by Floats::generate_tst().
Here is the call graph for this function:
void Assembler::fwait | ( | ) |
Definition at line 1289 of file assembler.cpp.
References emit_byte().
Referenced by Floats::generate_cmp(), and Floats::generate_tst().
Here is the call graph for this function:
void Assembler::fxch | ( | int | i = 1 |
) |
Definition at line 1255 of file assembler.cpp.
References emit_farith().
Referenced by Floats::generate().
Here is the call graph for this function:
void Assembler::hlt | ( | ) |
Definition at line 817 of file assembler.cpp.
References emit_byte().
Referenced by Floats::generate(), StubRoutines::generate_allocate(), StubRoutines::generate_call_DLL(), StubRoutines::generate_megamorphic_ic(), Floats::init(), and InterpreterGenerator::should_not_reach_here().
Here is the call graph for this function:
void Assembler::ic_info | ( | Label & | L, | |
int | flags | |||
) |
Definition at line 1108 of file assembler.cpp.
References assert, emit_byte(), emit_disp, emit_long(), Displacement::ic_info, L, IC_Info::number_of_flags, and offset().
Referenced by MacroAssembler::call_C().
Here is the call graph for this function:
void Assembler::idivl | ( | Register | src | ) |
Definition at line 605 of file assembler.cpp.
References emit_byte(), and Register::number().
Here is the call graph for this function:
Definition at line 618 of file assembler.cpp.
References emit_byte(), emit_long(), is8bit(), and Register::number().
Here is the call graph for this function:
Definition at line 611 of file assembler.cpp.
References emit_byte(), and Register::number().
Here is the call graph for this function:
void Assembler::incl | ( | Address | dst | ) |
Definition at line 636 of file assembler.cpp.
References eax, emit_byte(), and emit_operand().
Here is the call graph for this function:
void Assembler::incl | ( | Register | dst | ) |
Definition at line 631 of file assembler.cpp.
References emit_byte(), and Register::number().
Referenced by InterpreterGenerator::jump_ebx(), InterpreterGenerator::jump_edi(), and InterpreterGenerator::next_ebx().
Here is the call graph for this function:
void Assembler::int3 | ( | ) |
Definition at line 822 of file assembler.cpp.
References emit_byte().
Referenced by Floats::generate(), Floats::generate_tst(), InterpreterGenerator::jump_ebx(), and InterpreterGenerator::jump_edi().
Here is the call graph for this function:
bool Assembler::is8bit | ( | int | x | ) | [inline, protected] |
Definition at line 153 of file assembler.hpp.
Referenced by emit_arith(), emit_operand(), and imull().
bool Assembler::isByte | ( | int | x | ) | [inline, protected] |
Definition at line 154 of file assembler.hpp.
Referenced by emit_arith(), emit_arith_b(), emit_byte(), emit_farith(), jcc(), and jmp().
bool Assembler::isShiftCount | ( | int | x | ) | [inline, protected] |
Definition at line 1071 of file assembler.cpp.
References assert, Displacement::conditional_jump, emit_byte(), emit_disp, emit_long(), isByte(), L, and offset().
Here is the call graph for this function:
void Assembler::jcc | ( | Condition | cc, | |
char * | dst, | |||
relocInfo::relocType | rtype = relocInfo::runtime_call_type | |||
) |
Definition at line 1099 of file assembler.cpp.
References _code_pos, assert, emit_byte(), and emit_data().
Referenced by InterpreterGenerator::check_ebx(), InterpreterGenerator::check_oop(), StubRoutines::generate_call_DLL(), Floats::generate_cmp(), StubRoutines::generate_megamorphic_ic(), StubRoutines::generate_PIC_stub(), Floats::generate_tst(), StubRoutines::generate_verify_context_chain(), InterpreterGenerator::jump_ebx(), and InterpreterGenerator::jump_edi().
Here is the call graph for this function:
void Assembler::jmp | ( | Label & | L | ) |
Definition at line 1039 of file assembler.cpp.
References _binding_pos, _unbound_label, Displacement::absolute_jump, assert, emit_byte(), emit_disp, emit_long(), Label::is_unbound(), isByte(), L, link_to(), offset(), print(), outputStream::print(), outputStream::print_cr(), and std.
Here is the call graph for this function:
void Assembler::jmp | ( | Address | adr | ) |
Definition at line 1033 of file assembler.cpp.
References emit_byte(), emit_operand(), and esp.
Here is the call graph for this function:
void Assembler::jmp | ( | Register | reg | ) |
Definition at line 1027 of file assembler.cpp.
References emit_byte(), and Register::number().
Here is the call graph for this function:
void Assembler::jmp | ( | char * | entry, | |
relocInfo::relocType | rtype | |||
) |
Definition at line 1021 of file assembler.cpp.
References _code_pos, emit_byte(), and emit_data().
Referenced by MacroAssembler::call_C(), StubRoutines::generate_call_DLL(), StubRoutines::generate_compile_block(), StubRoutines::generate_continue_NLR(), StubRoutines::generate_deoptimize_block(), StubRoutines::generate_ic_lookup(), StubRoutines::generate_lookup_DLL(), StubRoutines::generate_megamorphic_ic(), StubRoutines::generate_PIC_stub(), StubRoutines::generate_recompile_stub(), StubRoutines::generate_verify_context_chain(), StubRoutines::generate_zombie_block_nmethod(), StubRoutines::generate_zombie_nmethod(), InterpreterGenerator::jump_ebx(), InterpreterGenerator::jump_edi(), and InterpreterGenerator::return_tos().
Here is the call graph for this function:
Definition at line 642 of file assembler.cpp.
References emit_byte(), and emit_operand().
Referenced by InterpreterGenerator::push_smi(), and InterpreterGenerator::return_tos().
Here is the call graph for this function:
Definition at line 926 of file assembler.cpp.
References disp_at, disp_at_put, Label::is_unbound(), L, Displacement::link_to(), and Label::unuse().
Referenced by bind(), and jmp().
Here is the call graph for this function:
Definition at line 407 of file assembler.hpp.
References movl().
Here is the call graph for this function:
int Assembler::long_at | ( | int | pos | ) | [inline, protected] |
Definition at line 150 of file assembler.hpp.
References addr_at().
Here is the call graph for this function:
void Assembler::long_at_put | ( | int | pos, | |
int | x | |||
) | [inline, protected] |
Definition at line 151 of file assembler.hpp.
References addr_at().
Referenced by bind_to().
Here is the call graph for this function:
Definition at line 407 of file assembler.cpp.
References emit_byte(), emit_operand(), guarantee, and Register::hasByteRegister().
Here is the call graph for this function:
void Assembler::movb | ( | Address | dst, | |
int | imm8 | |||
) |
Definition at line 400 of file assembler.cpp.
References eax, emit_byte(), and emit_operand().
Here is the call graph for this function:
Definition at line 393 of file assembler.cpp.
References emit_byte(), emit_operand(), guarantee, and Register::hasByteRegister().
Referenced by InterpreterGenerator::load_ebx(), InterpreterGenerator::load_recv(), InterpreterGenerator::next_ebx(), InterpreterGenerator::push_arg_n(), InterpreterGenerator::push_smi(), InterpreterGenerator::push_temp_n(), InterpreterGenerator::return_tos(), MacroAssembler::store_check(), and InterpreterGenerator::store_temp_n().
Here is the call graph for this function:
Definition at line 466 of file assembler.cpp.
References emit_byte(), and emit_operand().
Here is the call graph for this function:
Definition at line 459 of file assembler.cpp.
References eax, emit_byte(), emit_data(), and emit_operand().
Here is the call graph for this function:
void Assembler::movl | ( | Address | dst, | |
int | imm32 | |||
) |
Definition at line 452 of file assembler.cpp.
References eax, emit_byte(), emit_long(), and emit_operand().
Here is the call graph for this function:
Definition at line 446 of file assembler.cpp.
References emit_byte(), and emit_operand().
Here is the call graph for this function:
Definition at line 440 of file assembler.cpp.
References emit_byte(), and Register::number().
Here is the call graph for this function:
Definition at line 434 of file assembler.cpp.
References emit_byte(), emit_data(), and Register::number().
Here is the call graph for this function:
void Assembler::movl | ( | Register | dst, | |
int | imm32 | |||
) |
Definition at line 428 of file assembler.cpp.
References emit_byte(), emit_long(), and Register::number().
Referenced by MacroAssembler::enter(), StubRoutines::generate_call_DLL(), Floats::generate_cmp(), StubRoutines::generate_compile_block(), StubRoutines::generate_continue_NLR(), StubRoutines::generate_ic_lookup(), StubRoutines::generate_lookup_DLL(), StubRoutines::generate_megamorphic_ic(), StubRoutines::generate_PIC_stub(), StubRoutines::generate_recompile_stub(), Floats::generate_tst(), StubRoutines::generate_verify_context_chain(), StubRoutines::generate_zombie_block_nmethod(), StubRoutines::generate_zombie_nmethod(), MacroAssembler::leave(), Load(), InterpreterGenerator::load_edi(), InterpreterGenerator::load_recv(), InterpreterGenerator::push_arg(), InterpreterGenerator::push_arg_n(), InterpreterGenerator::push_const(), InterpreterGenerator::push_instVar(), InterpreterGenerator::push_literal(), InterpreterGenerator::push_self(), InterpreterGenerator::push_temp(), InterpreterGenerator::push_temp_n(), MacroAssembler::reset_last_Delta_frame(), InterpreterGenerator::restore_esi(), InterpreterGenerator::return_instVar(), InterpreterGenerator::save_esi(), MacroAssembler::set_last_Delta_frame_before_call(), Store(), MacroAssembler::store_check(), InterpreterGenerator::store_instVar(), InterpreterGenerator::store_temp(), and InterpreterGenerator::store_temp_n().
Here is the call graph for this function:
Definition at line 479 of file assembler.cpp.
References emit_byte(), guarantee, Register::hasByteRegister(), and Register::number().
Here is the call graph for this function:
Definition at line 472 of file assembler.cpp.
References emit_byte(), and emit_operand().
Here is the call graph for this function:
Definition at line 494 of file assembler.cpp.
References emit_byte(), and Register::number().
Here is the call graph for this function:
Definition at line 487 of file assembler.cpp.
References emit_byte(), and emit_operand().
Here is the call graph for this function:
Definition at line 421 of file assembler.cpp.
References emit_byte(), and emit_operand().
Here is the call graph for this function:
Definition at line 414 of file assembler.cpp.
References emit_byte(), and emit_operand().
Here is the call graph for this function:
void Assembler::mull | ( | Register | src | ) |
Definition at line 648 of file assembler.cpp.
References emit_byte(), and Register::number().
Here is the call graph for this function:
void Assembler::negl | ( | Register | dst | ) |
Definition at line 654 of file assembler.cpp.
References emit_byte(), and Register::number().
Referenced by InterpreterGenerator::push_smi().
Here is the call graph for this function:
void Assembler::nop | ( | ) |
Definition at line 827 of file assembler.cpp.
References emit_byte().
Referenced by MacroAssembler::align().
Here is the call graph for this function:
void Assembler::notl | ( | Register | dst | ) |
Definition at line 660 of file assembler.cpp.
References emit_byte(), and Register::number().
Here is the call graph for this function:
int Assembler::offset | ( | ) | const [inline] |
Definition at line 207 of file assembler.hpp.
References _code_begin, and _code_pos.
Referenced by MacroAssembler::align(), bind(), bind_to(), call(), ic_info(), StubRoutines::init(), jcc(), and jmp().
Definition at line 677 of file assembler.cpp.
References emit_byte(), and emit_operand().
Here is the call graph for this function:
Definition at line 671 of file assembler.cpp.
References emit_arith().
Here is the call graph for this function:
void Assembler::orl | ( | Register | dst, | |
int | imm32 | |||
) |
Definition at line 666 of file assembler.cpp.
References emit_arith().
Here is the call graph for this function:
char* Assembler::pc | ( | ) | const [inline] |
Definition at line 206 of file assembler.hpp.
References _code_pos.
Referenced by InterpreterGenerator::entry_point(), StubRoutines::generate(), Floats::generate(), StubRoutines::generate_allocate(), StubRoutines::generate_call_DLL(), StubRoutines::generate_call_inspector(), StubRoutines::generate_compile_block(), StubRoutines::generate_continue_NLR(), StubRoutines::generate_deoptimize_block(), StubRoutines::generate_ic_lookup(), StubRoutines::generate_lookup_DLL(), StubRoutines::generate_megamorphic_ic(), StubRoutines::generate_PIC_stub(), StubRoutines::generate_recompile_stub(), StubRoutines::generate_uncommon_trap(), StubRoutines::generate_verify_context_chain(), StubRoutines::generate_zombie_block_nmethod(), StubRoutines::generate_zombie_nmethod(), and Floats::init().
void Assembler::popad | ( | ) |
Definition at line 354 of file assembler.cpp.
References emit_byte().
Referenced by StubRoutines::generate_call_inspector().
Here is the call graph for this function:
void Assembler::popl | ( | Address | dst | ) |
Definition at line 387 of file assembler.cpp.
References eax, emit_byte(), and emit_operand().
Here is the call graph for this function:
void Assembler::popl | ( | Register | dst | ) |
Definition at line 382 of file assembler.cpp.
References emit_byte(), and Register::number().
Referenced by StubRoutines::generate_call_DLL(), StubRoutines::generate_compile_block(), StubRoutines::generate_continue_NLR(), StubRoutines::generate_deoptimize_block(), StubRoutines::generate_ic_lookup(), StubRoutines::generate_lookup_DLL(), StubRoutines::generate_megamorphic_ic(), StubRoutines::generate_PIC_stub(), StubRoutines::generate_recompile_stub(), StubRoutines::generate_verify_context_chain(), StubRoutines::generate_zombie_block_nmethod(), StubRoutines::generate_zombie_nmethod(), InterpreterGenerator::jump_ebx(), InterpreterGenerator::jump_edi(), MacroAssembler::leave(), InterpreterGenerator::only_pop(), InterpreterGenerator::return_tos(), InterpreterGenerator::store_instVar(), InterpreterGenerator::store_temp(), and InterpreterGenerator::store_temp_n().
Here is the call graph for this function:
void Assembler::print | ( | Label & | L | ) | [protected] |
Definition at line 857 of file assembler.cpp.
References outputStream::cr(), disp_at, L, outputStream::print(), outputStream::print_cr(), and std.
Referenced by jmp().
Here is the call graph for this function:
void Assembler::pushad | ( | ) |
Definition at line 349 of file assembler.cpp.
References emit_byte().
Referenced by StubRoutines::generate_call_inspector().
Here is the call graph for this function:
void Assembler::pushl | ( | Address | src | ) |
Definition at line 376 of file assembler.cpp.
References emit_byte(), emit_operand(), and esi.
Here is the call graph for this function:
void Assembler::pushl | ( | Register | src | ) |
Definition at line 371 of file assembler.cpp.
References emit_byte(), and Register::number().
Here is the call graph for this function:
void Assembler::pushl | ( | oop | obj | ) |
Definition at line 365 of file assembler.cpp.
References emit_byte(), and emit_data().
Here is the call graph for this function:
void Assembler::pushl | ( | int | imm32 | ) |
Definition at line 359 of file assembler.cpp.
References emit_byte(), and emit_long().
Referenced by MacroAssembler::call_C(), MacroAssembler::enter(), StubRoutines::generate_call_DLL(), StubRoutines::generate_compile_block(), StubRoutines::generate_deoptimize_block(), StubRoutines::generate_ic_lookup(), StubRoutines::generate_lookup_DLL(), StubRoutines::generate_megamorphic_ic(), StubRoutines::generate_recompile_stub(), StubRoutines::generate_verify_context_chain(), StubRoutines::generate_zombie_block_nmethod(), StubRoutines::generate_zombie_nmethod(), InterpreterGenerator::jump_ebx(), InterpreterGenerator::jump_edi(), InterpreterGenerator::load_recv(), InterpreterGenerator::push_arg(), InterpreterGenerator::push_arg_n(), InterpreterGenerator::push_const(), InterpreterGenerator::push_instVar(), InterpreterGenerator::push_literal(), InterpreterGenerator::push_self(), InterpreterGenerator::push_smi(), InterpreterGenerator::push_temp(), InterpreterGenerator::push_temp_n(), and InterpreterGenerator::push_tos().
Here is the call graph for this function:
void Assembler::rcll | ( | Register | dst, | |
int | imm8 | |||
) |
Definition at line 683 of file assembler.cpp.
References assert, emit_byte(), isShiftCount(), and Register::number().
Here is the call graph for this function:
void Assembler::ret | ( | int | imm16 | ) |
Definition at line 832 of file assembler.cpp.
References emit_byte().
Referenced by MacroAssembler::call_C(), Floats::generate(), StubRoutines::generate_call_DLL(), StubRoutines::generate_call_inspector(), StubRoutines::generate_uncommon_trap(), StubRoutines::generate_verify_context_chain(), and InterpreterGenerator::return_tos().
Here is the call graph for this function:
void Assembler::sarl | ( | Register | dst | ) |
Definition at line 709 of file assembler.cpp.
References emit_byte(), and Register::number().
Here is the call graph for this function:
void Assembler::sarl | ( | Register | dst, | |
int | imm8 | |||
) |
Definition at line 696 of file assembler.cpp.
References assert, emit_byte(), isShiftCount(), and Register::number().
Referenced by StubRoutines::generate_call_DLL(), and StubRoutines::generate_continue_NLR().
Here is the call graph for this function:
Definition at line 720 of file assembler.cpp.
References emit_arith().
Here is the call graph for this function:
void Assembler::sbbl | ( | Register | dst, | |
int | imm32 | |||
) |
Definition at line 725 of file assembler.cpp.
References emit_byte(), and Register::number().
Here is the call graph for this function:
void Assembler::shll | ( | Register | dst | ) |
Definition at line 745 of file assembler.cpp.
References emit_byte(), and Register::number().
Here is the call graph for this function:
void Assembler::shll | ( | Register | dst, | |
int | imm8 | |||
) |
Definition at line 732 of file assembler.cpp.
References assert, emit_byte(), isShiftCount(), and Register::number().
Here is the call graph for this function:
Definition at line 751 of file assembler.cpp.
References emit_byte(), and Register::number().
Here is the call graph for this function:
void Assembler::shrl | ( | Register | dst | ) |
Definition at line 766 of file assembler.cpp.
References emit_byte(), and Register::number().
Here is the call graph for this function:
void Assembler::shrl | ( | Register | dst, | |
int | imm8 | |||
) |
Definition at line 758 of file assembler.cpp.
References assert, emit_byte(), isShiftCount(), and Register::number().
Referenced by MacroAssembler::store_check().
Here is the call graph for this function:
Definition at line 408 of file assembler.hpp.
References movl().
Here is the call graph for this function:
Definition at line 777 of file assembler.cpp.
References emit_arith().
Here is the call graph for this function:
void Assembler::subl | ( | Register | dst, | |
int | imm32 | |||
) |
Definition at line 772 of file assembler.cpp.
References emit_arith().
Referenced by MacroAssembler::set_last_Delta_frame_after_call().
Here is the call graph for this function:
void Assembler::testb | ( | Register | dst, | |
int | imm8 | |||
) |
Definition at line 782 of file assembler.cpp.
References emit_arith_b(), guarantee, and Register::hasByteRegister().
Referenced by InterpreterGenerator::check_oop(), StubRoutines::generate_call_DLL(), and MacroAssembler::test().
Here is the call graph for this function:
Definition at line 802 of file assembler.cpp.
References emit_arith().
Here is the call graph for this function:
void Assembler::testl | ( | Register | dst, | |
int | imm32 | |||
) |
Definition at line 788 of file assembler.cpp.
References emit_byte(), emit_long(), and Register::number().
Referenced by InterpreterGenerator::check_ebx(), StubRoutines::generate_call_DLL(), Floats::generate_cmp(), StubRoutines::generate_megamorphic_ic(), Floats::generate_tst(), StubRoutines::generate_verify_context_chain(), MacroAssembler::inspect(), and MacroAssembler::test().
Here is the call graph for this function:
Definition at line 812 of file assembler.cpp.
References emit_arith().
Here is the call graph for this function:
void Assembler::xorl | ( | Register | dst, | |
int | imm32 | |||
) |
Definition at line 807 of file assembler.cpp.
References emit_arith().
Referenced by StubRoutines::generate_megamorphic_ic(), StubRoutines::generate_PIC_stub(), and InterpreterGenerator::restore_ebx().
Here is the call graph for this function:
int Assembler::_binding_pos [protected] |
CodeBuffer* Assembler::_code [protected] |
char* Assembler::_code_begin [protected] |
char* Assembler::_code_limit [protected] |
char* Assembler::_code_pos [protected] |
Definition at line 140 of file assembler.hpp.
Referenced by Assembler(), bind(), call(), emit_byte(), emit_data(), emit_long(), jcc(), jmp(), offset(), and pc().
Label Assembler::_unbound_label [protected] |