688 // const Address field_address (eax, esi, Address::times_1); |
688 // const Address field_address (eax, esi, Address::times_1); |
689 |
689 |
690 // Need to differentiate between igetfield, agetfield, bgetfield etc. |
690 // Need to differentiate between igetfield, agetfield, bgetfield etc. |
691 // because they are different sizes. |
691 // because they are different sizes. |
692 // Use the type from the constant pool cache |
692 // Use the type from the constant pool cache |
693 __ dsrl(T3, T3, ConstantPoolCacheEntry::tos_state_shift); |
693 __ srl(T3, T3, ConstantPoolCacheEntry::tos_state_shift); |
694 // Make sure we don't need to mask edx for tosBits after the above shift |
694 // Make sure we don't need to mask edx for tosBits after the above shift |
695 ConstantPoolCacheEntry::verify_tos_state_shift(); |
695 ConstantPoolCacheEntry::verify_tos_state_shift(); |
696 // btos = 0 |
696 // btos = 0 |
697 __ bne(T3, R0, notByte); |
697 __ bne(T3, R0, notByte); |
698 __ delayed()->dadd(T0, T0, AT); |
698 __ delayed()->dadd(T0, T0, AT); |