src/hotspot/cpu/x86/templateTable_x86.cpp
changeset 51756 4bd35a5ec694
parent 51633 21154cb84d2a
child 51816 1fd0f300d4b7
equal deleted inserted replaced
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