Lines Matching refs:rbx

144                                 rbx /* pre_val */,
160 rbx /* tmp */,
355 __ get_unsigned_2_byte_index_at_bcp(rbx, 1);
357 __ load_unsigned_byte(rbx, at_bcp(1));
365 __ movb(rdx, Address(rax, rbx, Address::times_1, tags_offset));
394 __ fld_s( Address(rcx, rbx, Address::times_ptr, base_offset));
416 __ movl(rax, Address(rcx, rbx, Address::times_ptr, base_offset));
420 __ movptr(rax, Address(rcx, rbx, Address::times_ptr, base_offset));
475 __ get_unsigned_2_byte_index_at_bcp(rbx, 1);
482 __ cmpb(Address(rax, rbx, Address::times_1, tags_offset), JVM_CONSTANT_Double);
485 __ fld_d( Address(rcx, rbx, Address::times_ptr, base_offset));
491 __ movptr(rax, Address(rcx, rbx, Address::times_ptr, base_offset + 0 * wordSize));
492 NOT_LP64(__ movptr(rdx, Address(rcx, rbx, Address::times_ptr, base_offset + 1 * wordSize)));
512 __ load_unsigned_byte(rbx, at_bcp(Bytecodes::length_for(Bytecodes::_iload)));
517 __ cmpl(rbx, Bytecodes::_iload);
520 __ cmpl(rbx, Bytecodes::_fast_iload);
525 __ cmpl(rbx, Bytecodes::_caload);
535 patch_bytecode(Bytecodes::_iload, rcx, rbx, false);
540 locals_index(rbx);
541 __ movl(rax, iaddress(rbx));
547 locals_index(rbx);
548 __ movl(rax, iaddress(rbx));
550 locals_index(rbx, 3);
551 __ movl(rax, iaddress(rbx));
556 locals_index(rbx);
557 __ movl(rax, iaddress(rbx));
563 locals_index(rbx);
564 __ movptr(rax, laddress(rbx));
565 NOT_LP64(__ movl(rdx, haddress(rbx)));
571 locals_index(rbx);
572 __ fld_s(faddress(rbx));
578 locals_index(rbx);
579 __ fld_d(daddress(rbx));
585 locals_index(rbx);
586 __ movptr(rax, aaddress(rbx));
600 locals_index_wide(rbx);
601 __ movl(rax, iaddress(rbx));
607 locals_index_wide(rbx);
608 __ movptr(rax, laddress(rbx));
609 NOT_LP64(__ movl(rdx, haddress(rbx)));
615 locals_index_wide(rbx);
616 __ fld_s(faddress(rbx));
622 locals_index_wide(rbx);
623 __ fld_d(daddress(rbx));
629 locals_index_wide(rbx);
630 __ movptr(rax, aaddress(rbx));
640 // destroys rbx,
646 if (index != rbx) {
647 // ??? convention: move aberrant index into rbx, for exception message
648 assert(rbx != array, "different registers");
649 __ mov(rbx, index);
659 index_check(rdx, rax); // kills rbx,
670 __ mov(rbx, rax);
671 // rbx,: index
672 __ movptr(rax, Address(rdx, rbx, Address::times_8, arrayOopDesc::base_offset_in_bytes(T_LONG) + 0 * wordSize));
673 NOT_LP64(__ movl(rdx, Address(rdx, rbx, Address::times_8, arrayOopDesc::base_offset_in_bytes(T_LONG) + 1 * wordSize)));
680 index_check(rdx, rax); // kills rbx,
689 index_check(rdx, rax); // kills rbx,
698 index_check(rdx, rax); // kills rbx,
707 index_check(rdx, rax); // kills rbx,
710 __ load_signed_byte(rbx, Address(rdx, rax, Address::times_1, arrayOopDesc::base_offset_in_bytes(T_BYTE)));
711 __ mov(rax, rbx);
718 index_check(rdx, rax); // kills rbx,
721 __ load_unsigned_short(rbx, Address(rdx, rax, Address::times_2, arrayOopDesc::base_offset_in_bytes(T_CHAR)));
722 __ mov(rax, rbx);
729 locals_index(rbx);
730 __ movl(rax, iaddress(rbx));
735 __ load_unsigned_short(rbx, Address(rdx, rax, Address::times_2, arrayOopDesc::base_offset_in_bytes(T_CHAR)));
736 __ mov(rax, rbx);
742 index_check(rdx, rax); // kills rbx,
745 __ load_signed_short(rbx, Address(rdx, rax, Address::times_2, arrayOopDesc::base_offset_in_bytes(T_SHORT)));
746 __ mov(rax, rbx);
805 __ load_unsigned_byte(rbx, at_bcp(Bytecodes::length_for(Bytecodes::_aload_0)));
811 __ cmpl(rbx, Bytecodes::_getfield);
816 __ cmpl(rbx, Bytecodes::_fast_igetfield);
822 __ cmpl(rbx, Bytecodes::_fast_agetfield);
828 __ cmpl(rbx, Bytecodes::_fast_fgetfield);
839 patch_bytecode(Bytecodes::_aload_0, rcx, rbx, false);
849 locals_index(rbx);
850 __ movl(iaddress(rbx), rax);
856 locals_index(rbx);
857 __ movptr(laddress(rbx), rax);
858 NOT_LP64(__ movptr(haddress(rbx), rdx));
864 locals_index(rbx);
865 __ fstp_s(faddress(rbx));
871 locals_index(rbx);
872 __ fstp_d(daddress(rbx));
879 locals_index(rbx);
880 __ movptr(aaddress(rbx), rax);
887 locals_index_wide(rbx);
888 __ movl(iaddress(rbx), rax);
895 locals_index_wide(rbx);
896 __ movptr(laddress(rbx), rax);
897 NOT_LP64(__ movl(haddress(rbx), rdx));
914 locals_index_wide(rbx);
915 __ movptr(aaddress(rbx), rax);
921 __ pop_i(rbx);
924 index_check(rdx, rbx); // prefer index in rbx,
925 // rbx,: index
926 __ movl(Address(rdx, rbx, Address::times_4, arrayOopDesc::base_offset_in_bytes(T_INT)), rax);
932 __ pop_i(rbx);
936 index_check(rcx, rbx); // prefer index in rbx,
937 // rbx,: index
938 __ movptr(Address(rcx, rbx, Address::times_8, arrayOopDesc::base_offset_in_bytes(T_LONG) + 0 * wordSize), rax);
939 NOT_LP64(__ movl(Address(rcx, rbx, Address::times_8, arrayOopDesc::base_offset_in_bytes(T_LONG) + 1 * wordSize), rdx));
945 __ pop_i(rbx);
948 index_check(rdx, rbx); // prefer index in rbx,
949 // rbx,: index
950 __ fstp_s(Address(rdx, rbx, Address::times_4, arrayOopDesc::base_offset_in_bytes(T_FLOAT)));
956 __ pop_i(rbx);
959 index_check(rdx, rbx); // prefer index in rbx,
960 // rbx,: index
961 __ fstp_d(Address(rdx, rbx, Address::times_8, arrayOopDesc::base_offset_in_bytes(T_DOUBLE)));
974 index_check_without_pop(rdx, rcx); // kills rbx,
980 __ load_klass(rbx, rax);
989 __ gen_subtype_check( rbx, ok_is_subtype );
1007 __ profile_null_seen(rbx);
1020 __ pop_i(rbx);
1023 index_check(rdx, rbx); // prefer index in rbx,
1024 // rbx,: index
1025 __ movb(Address(rdx, rbx, Address::times_1, arrayOopDesc::base_offset_in_bytes(T_BYTE)), rax);
1031 __ pop_i(rbx);
1034 index_check(rdx, rbx); // prefer index in rbx,
1035 // rbx,: index
1036 __ movw(Address(rdx, rbx, Address::times_2, arrayOopDesc::base_offset_in_bytes(T_CHAR)), rax);
1207 __ pop_l(rbx, rcx);
1209 case add : __ addl(rax, rbx); __ adcl(rdx, rcx); break;
1210 case sub : __ subl(rbx, rax); __ sbbl(rcx, rdx);
1211 __ mov (rax, rbx); __ mov (rdx, rcx); break;
1212 case _and : __ andl(rax, rbx); __ andl(rdx, rcx); break;
1213 case _or : __ orl (rax, rbx); __ orl (rdx, rcx); break;
1214 case _xor : __ xorl(rax, rbx); __ xorl(rdx, rcx); break;
1247 __ pop_l(rbx, rcx);
1248 __ push(rcx); __ push(rbx);
1257 __ pop_l(rbx, rcx);
1258 __ push(rcx); __ push(rbx);
1271 __ pop_l(rbx, rcx);
1272 __ push(rcx); __ push(rbx);
1403 locals_index(rbx);
1404 __ addl(iaddress(rbx), rdx);
1411 locals_index_wide(rbx);
1414 __ addl(iaddress(rbx), rdx);
1557 __ pop_l(rbx, rcx); // get x = rcx:rbx
1558 __ lcmp2int(rcx, rbx, rdx, rax);// rcx := cmp(x, y)
1577 __ profile_taken_branch(rax,rbx); // EAX holds updated MDP, EBX holds bumped taken count
1595 __ load_unsigned_byte(rbx, Address(rsi, rdx, Address::times_1, 0));
1621 // rbx,: MDO bumped taken-count
1635 __ movptr(rbx, Address(rcx, in_bytes(methodOopDesc::method_data_offset())));
1636 __ testptr(rbx, rbx);
1639 const Address mdo_backedge_counter(rbx, in_bytes(methodDataOopDesc::backedge_counter_offset()) +
1669 // check for overflow against rbx, which is the MDO taken count
1670 __ cmp32(rbx,
1680 __ andptr(rbx, overflow_frequency-1);
1697 __ load_unsigned_byte(rbx, Address(rsi, 0));
1701 // rbx,: target bytecode
1710 __ load_unsigned_byte(rbx, Address(rsi, 0)); // restore target bytecode
1722 __ load_unsigned_byte(rbx, Address(rsi, 0)); // restore target bytecode
1725 // rbx,: target bytecode
1740 __ mov(rbx, rax); // save the nmethod
1763 __ jmp(Address(rbx, nmethod::osr_entry_point_offset()));
1821 locals_index(rbx);
1822 __ movptr(rbx, iaddress(rbx)); // get return bci, compute return bcp
1823 __ profile_ret(rbx, rcx);
1826 __ lea(rsi, Address(rsi, rbx, Address::times_1,
1834 locals_index_wide(rbx);
1835 __ movptr(rbx, iaddress(rbx)); // get return bci, compute return bcp
1836 __ profile_ret(rbx, rcx);
1839 __ lea(rsi, Address(rsi, rbx, Address::times_1, constMethodOopDesc::codes_offset()));
1848 __ lea(rbx, at_bcp(wordSize));
1849 __ andptr(rbx, -wordSize);
1851 __ movl(rcx, Address(rbx, 1 * wordSize));
1852 __ movl(rdx, Address(rbx, 2 * wordSize));
1862 __ movl(rdx, Address(rbx, rax, Address::times_4, 3 * BytesPerInt));
1863 __ profile_switch_case(rax, rbx, rcx);
1867 __ load_unsigned_byte(rbx, Address(rsi, rdx, Address::times_1));
1873 __ movl(rdx, Address(rbx, 0));
1890 __ lea(rbx, at_bcp(wordSize)); // btw: should be able to get rid of this instruction (change offsets below)
1891 __ andptr(rbx, -wordSize);
1893 __ movl(rcx, Address(rbx, wordSize));
1898 __ cmpl(rax, Address(rbx, rcx, Address::times_8, 2 * wordSize));
1905 __ movl(rdx, Address(rbx, 0));
1909 __ movl(rdx, Address(rbx, rcx, Address::times_8, 3 * wordSize));
1910 __ profile_switch_case(rcx, rax, rbx);
1914 __ load_unsigned_byte(rbx, Address(rsi, rdx, Address::times_1));
1949 const Register array = rbx;
2009 __ load_unsigned_byte(rbx, Address(rsi, j, Address::times_1));
2022 __ load_unsigned_byte(rbx, Address(rsi, j, Address::times_1));
2087 const Register temp = rbx;
2257 const Register off = rbx;
2281 patch_bytecode(Bytecodes::_fast_bgetfield, rcx, rbx);
2294 patch_bytecode(Bytecodes::_fast_igetfield, rcx, rbx);
2306 patch_bytecode(Bytecodes::_fast_agetfield, rcx, rbx);
2318 patch_bytecode(Bytecodes::_fast_cgetfield, rcx, rbx);
2330 patch_bytecode(Bytecodes::_fast_sgetfield, rcx, rbx);
2359 patch_bytecode(Bytecodes::_fast_fgetfield, rcx, rbx);
2371 patch_bytecode(Bytecodes::_fast_dgetfield, rcx, rbx);
2416 __ xorptr(rbx, rbx);
2425 __ mov(rbx, rsp);
2433 __ addptr(rbx, Interpreter::expr_offset_in_bytes(1)); // one word jvalue (not ltos, dtos)
2437 __ addptr(rbx, Interpreter::expr_offset_in_bytes(2)); // two words jvalue
2441 __ movptr(rbx, Address(rbx, 0));
2449 // rbx,: object pointer set up above (NULL if static)
2453 rbx, rax, rcx);
2466 const Register off = rbx;
2498 patch_bytecode(Bytecodes::_fast_bputfield, rcx, rbx, true, byte_no);
2513 patch_bytecode(Bytecodes::_fast_iputfield, rcx, rbx, true, byte_no);
2528 patch_bytecode(Bytecodes::_fast_aputfield, rcx, rbx, true, byte_no);
2543 patch_bytecode(Bytecodes::_fast_cputfield, rcx, rbx, true, byte_no);
2558 patch_bytecode(Bytecodes::_fast_sputfield, rcx, rbx, true, byte_no);
2595 patch_bytecode(Bytecodes::_fast_lputfield, rcx, rbx, true, byte_no);
2610 patch_bytecode(Bytecodes::_fast_fputfield, rcx, rbx, true, byte_no);
2627 patch_bytecode(Bytecodes::_fast_dputfield, rcx, rbx, true, byte_no);
2665 __ pop_ptr(rbx); // copy the object pointer from tos
2666 __ verify_oop(rbx);
2667 __ push_ptr(rbx); // put the object pointer back on tos
2688 __ verify_oop(rbx);
2689 // rbx,: object pointer copied above
2692 __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::post_field_modification), rbx, rax, rcx);
2716 __ get_cache_and_index_at_bcp(rcx, rbx, 1);
2720 __ movl(rdx, Address(rcx, rbx, Address::times_ptr, in_bytes(base +
2724 __ movptr(rbx, Address(rcx, rbx, Address::times_ptr, in_bytes(base + ConstantPoolCacheEntry::f2_offset())));
2742 const Address lo(rcx, rbx, Address::times_1, 0*wordSize);
2743 const Address hi(rcx, rbx, Address::times_1, 1*wordSize);
2825 __ get_cache_and_index_at_bcp(rcx, rbx, 1);
2827 __ movptr(rbx, Address(rcx,
2828 rbx,
2837 const Address lo = Address(rax, rbx, Address::times_1, 0*wordSize);
2838 const Address hi = Address(rax, rbx, Address::times_1, 1*wordSize);
2864 __ movptr(rbx, Address(rcx,
2871 const Address lo = Address(rax, rbx, Address::times_1, 0*wordSize);
2984 assert(index == rbx, "");
2993 const Register method = index; // method must be rbx
2994 assert(method == rbx,
2995 "methodOop must be rbx for interpreter calling convention");
3029 rbx, // method or vtable index
3033 // rbx: index
3037 invokevirtual_helper(rbx, rcx, rdx);
3044 prepare_invoke(byte_no, rbx, noreg, // get f1 methodOop
3049 __ verify_oop(rbx);
3051 __ jump_from_interpreted(rbx, rax);
3058 prepare_invoke(byte_no, rbx); // get f1 methodOop
3060 __ verify_oop(rbx);
3062 __ jump_from_interpreted(rbx, rax);
3076 prepare_invoke(byte_no, rax, rbx, // get f1 klassOop, f2 itable index
3080 // rbx: itable index (from f2)
3093 invokevirtual_helper(rbx, rcx, rdx);
3108 rdx, rax, rbx,
3110 rbx, rsi,
3113 // rbx: methodOop to call
3119 __ testptr(rbx, rbx);
3124 // rbx,: methodOop
3125 __ jump_from_interpreted(rbx, rdx);
3134 __ pop(rbx); // pop return address (pushed by prepare_invoke)
3143 __ pop(rbx); // pop return address (pushed by prepare_invoke)
3155 const Register rbx_method = rbx; // (from f2)
3197 const Register rbx_method = rbx;
3203 // rbx: MH.linkToCallSite method (from f2)
3270 __ lea(rbx, Address(rax, rdx, Address::times_1));
3271 __ cmpptr(rbx, Address(thread, in_bytes(JavaThread::tlab_end_offset())));
3273 __ movptr(Address(thread, in_bytes(JavaThread::tlab_top_offset())), rbx);
3294 __ lea(rbx, Address(rax, rdx, Address::times_1));
3295 __ cmpptr(rbx, ExternalAddress((address)Universe::heap()->end_addr()));
3299 // top addr in rbx, at the address of the top addr pointer. Sets ZF if was
3303 // rbx,: object end
3305 __ locked_cmpxchgptr(rbx, heap_top);
3349 __ movptr(rbx, Address(rcx, Klass::prototype_header_offset()));
3350 __ movptr(Address(rax, oopDesc::mark_offset_in_bytes ()), rbx);
3415 __ get_unsigned_2_byte_index_at_bcp(rbx, 1); // EBX=index
3417 __ cmpb(Address(rdx, rbx, Address::times_1, typeArrayOopDesc::header_size(T_BYTE) * wordSize), JVM_CONSTANT_Class);
3428 __ movptr(rax, Address(rcx, rbx, Address::times_ptr, sizeof(constantPoolOopDesc)));
3431 __ load_klass(rbx, rdx);
3435 __ gen_subtype_check( rbx, ok_is_subtype );
3466 __ get_unsigned_2_byte_index_at_bcp(rbx, 1); // EBX=index
3468 __ cmpb(Address(rdx, rbx, Address::times_1, typeArrayOopDesc::header_size(T_BYTE) * wordSize), JVM_CONSTANT_Class);
3480 __ movptr(rax, Address(rcx, rbx, Address::times_ptr, sizeof(constantPoolOopDesc)));
3522 __ mov(rbx, rax);
3580 __ lea(rbx, monitor_block_bot); // points to word before bottom of monitor block
3590 __ cmpptr(rcx, rbx); // check if bottom reached
3609 __ movptr(rbx, Address(rcx, entry_size)); // load expression stack word from old location
3610 __ movptr(Address(rcx, 0), rbx); // and store it at new location
3651 __ lea(rbx, monitor_block_bot); // points to word before bottom of monitor block
3659 __ cmpptr(rdx, rbx); // check if bottom reached
3683 __ load_unsigned_byte(rbx, at_bcp(1));
3685 __ jump(ArrayAddress(wtable, Address(noreg, rbx, Address::times_ptr)));
3701 __ load_unsigned_byte(rbx, at_bcp(3));
3702 __ lea(rsp, Address(rsp, rbx, Interpreter::stackElementScale())); // get rid of counts