changeset 51756 | 4bd35a5ec694 |
parent 51633 | 21154cb84d2a |
child 51816 | 1fd0f300d4b7 |
51755:6c394ed56b07 | 51756:4bd35a5ec694 |
---|---|
2873 |
2873 |
2874 if (!is_static) pop_and_check_object(obj); |
2874 if (!is_static) pop_and_check_object(obj); |
2875 |
2875 |
2876 const Address field(obj, off, Address::times_1, 0*wordSize); |
2876 const Address field(obj, off, Address::times_1, 0*wordSize); |
2877 |
2877 |
2878 Label Done, notByte, notBool, notInt, notShort, notChar, notLong, notFloat, notObj, notDouble; |
2878 Label Done, notByte, notBool, notInt, notShort, notChar, notLong, notFloat, notObj; |
2879 |
2879 |
2880 __ shrl(flags, ConstantPoolCacheEntry::tos_state_shift); |
2880 __ shrl(flags, ConstantPoolCacheEntry::tos_state_shift); |
2881 // Make sure we don't need to mask edx after the above shift |
2881 // Make sure we don't need to mask edx after the above shift |
2882 assert(btos == 0, "change code, btos != 0"); |
2882 assert(btos == 0, "change code, btos != 0"); |
2883 |
2883 |
2979 } |
2979 } |
2980 __ jmp(Done); |
2980 __ jmp(Done); |
2981 |
2981 |
2982 __ bind(notFloat); |
2982 __ bind(notFloat); |
2983 #ifdef ASSERT |
2983 #ifdef ASSERT |
2984 Label notDouble; |
|
2984 __ cmpl(flags, dtos); |
2985 __ cmpl(flags, dtos); |
2985 __ jcc(Assembler::notEqual, notDouble); |
2986 __ jcc(Assembler::notEqual, notDouble); |
2986 #endif |
2987 #endif |
2987 // dtos |
2988 // dtos |
2988 __ access_load_at(T_DOUBLE, IN_HEAP, noreg /* dtos */, field, noreg, noreg); |
2989 __ access_load_at(T_DOUBLE, IN_HEAP, noreg /* dtos */, field, noreg, noreg); |
3130 // field addresses |
3131 // field addresses |
3131 const Address field(obj, off, Address::times_1, 0*wordSize); |
3132 const Address field(obj, off, Address::times_1, 0*wordSize); |
3132 NOT_LP64( const Address hi(obj, off, Address::times_1, 1*wordSize);) |
3133 NOT_LP64( const Address hi(obj, off, Address::times_1, 1*wordSize);) |
3133 |
3134 |
3134 Label notByte, notBool, notInt, notShort, notChar, |
3135 Label notByte, notBool, notInt, notShort, notChar, |
3135 notLong, notFloat, notObj, notDouble; |
3136 notLong, notFloat, notObj; |
3136 |
3137 |
3137 __ shrl(flags, ConstantPoolCacheEntry::tos_state_shift); |
3138 __ shrl(flags, ConstantPoolCacheEntry::tos_state_shift); |
3138 |
3139 |
3139 assert(btos == 0, "change code, btos != 0"); |
3140 assert(btos == 0, "change code, btos != 0"); |
3140 __ andl(flags, ConstantPoolCacheEntry::tos_state_mask); |
3141 __ andl(flags, ConstantPoolCacheEntry::tos_state_mask); |
3284 __ jmp(Done); |
3285 __ jmp(Done); |
3285 } |
3286 } |
3286 |
3287 |
3287 __ bind(notFloat); |
3288 __ bind(notFloat); |
3288 #ifdef ASSERT |
3289 #ifdef ASSERT |
3290 Label notDouble; |
|
3289 __ cmpl(flags, dtos); |
3291 __ cmpl(flags, dtos); |
3290 __ jcc(Assembler::notEqual, notDouble); |
3292 __ jcc(Assembler::notEqual, notDouble); |
3291 #endif |
3293 #endif |
3292 |
3294 |
3293 // dtos |
3295 // dtos |