< prev index next >
src/hotspot/cpu/x86/templateTable_x86.cpp
Print this page
rev 47594 : imported patch Interpreter-Poll-7
rev 47595 : imported patch Interpreter-Poll-Wide_Ret-8
rev 47597 : imported patch Interpreter-Poll-Switch-10
*** 2371,2381 ****
__ bind(continue_execution);
__ bswapl(rdx);
LP64_ONLY(__ movl2ptr(rdx, rdx));
__ load_unsigned_byte(rbx, Address(rbcp, rdx, Address::times_1));
__ addptr(rbcp, rdx);
! __ dispatch_only(vtos);
// handle default
__ bind(default_case);
__ profile_switch_default(rax);
__ movl(rdx, Address(rbx, 0));
__ jmp(continue_execution);
--- 2371,2381 ----
__ bind(continue_execution);
__ bswapl(rdx);
LP64_ONLY(__ movl2ptr(rdx, rdx));
__ load_unsigned_byte(rbx, Address(rbcp, rdx, Address::times_1));
__ addptr(rbcp, rdx);
! __ dispatch_only(vtos, true);
// handle default
__ bind(default_case);
__ profile_switch_default(rax);
__ movl(rdx, Address(rbx, 0));
__ jmp(continue_execution);
*** 2419,2429 ****
__ bind(continue_execution);
__ bswapl(rdx);
__ movl2ptr(rdx, rdx);
__ load_unsigned_byte(rbx, Address(rbcp, rdx, Address::times_1));
__ addptr(rbcp, rdx);
! __ dispatch_only(vtos);
}
void TemplateTable::fast_binaryswitch() {
transition(itos, vtos);
// Implementation using the following core algorithm:
--- 2419,2429 ----
__ bind(continue_execution);
__ bswapl(rdx);
__ movl2ptr(rdx, rdx);
__ load_unsigned_byte(rbx, Address(rbcp, rdx, Address::times_1));
__ addptr(rbcp, rdx);
! __ dispatch_only(vtos, true);
}
void TemplateTable::fast_binaryswitch() {
transition(itos, vtos);
// Implementation using the following core algorithm:
*** 2523,2533 ****
NOT_LP64(__ restore_bcp());
NOT_LP64(__ restore_locals()); // restore rdi
__ load_unsigned_byte(rbx, Address(rbcp, j, Address::times_1));
__ addptr(rbcp, j);
! __ dispatch_only(vtos);
// default case -> j = default offset
__ bind(default_case);
__ profile_switch_default(i);
__ movl(j, Address(array, -2 * BytesPerInt));
--- 2523,2533 ----
NOT_LP64(__ restore_bcp());
NOT_LP64(__ restore_locals()); // restore rdi
__ load_unsigned_byte(rbx, Address(rbcp, j, Address::times_1));
__ addptr(rbcp, j);
! __ dispatch_only(vtos, true);
// default case -> j = default offset
__ bind(default_case);
__ profile_switch_default(i);
__ movl(j, Address(array, -2 * BytesPerInt));
*** 2537,2547 ****
NOT_LP64(__ restore_bcp());
NOT_LP64(__ restore_locals());
__ load_unsigned_byte(rbx, Address(rbcp, j, Address::times_1));
__ addptr(rbcp, j);
! __ dispatch_only(vtos);
}
void TemplateTable::_return(TosState state) {
transition(state, state);
--- 2537,2547 ----
NOT_LP64(__ restore_bcp());
NOT_LP64(__ restore_locals());
__ load_unsigned_byte(rbx, Address(rbcp, j, Address::times_1));
__ addptr(rbcp, j);
! __ dispatch_only(vtos, true);
}
void TemplateTable::_return(TosState state) {
transition(state, state);
< prev index next >