4166 __ xchgl(obj, as_Address(src->as_address_ptr())); 4167 #endif 4168 } else if (data->type() == T_LONG) { 4169 #ifdef _LP64 4170 assert(data->as_register_lo() == data->as_register_hi(), "should be a single register"); 4171 if (code == lir_xadd) { 4172 if (os::is_MP()) { 4173 __ lock(); 4174 } 4175 __ xaddq(as_Address(src->as_address_ptr()), data->as_register_lo()); 4176 } else { 4177 __ xchgq(data->as_register_lo(), as_Address(src->as_address_ptr())); 4178 } 4179 #else 4180 ShouldNotReachHere(); 4181 #endif 4182 } else { 4183 ShouldNotReachHere(); 4184 } 4185 } 4186 #undef __ | 4166 __ xchgl(obj, as_Address(src->as_address_ptr())); 4167 #endif 4168 } else if (data->type() == T_LONG) { 4169 #ifdef _LP64 4170 assert(data->as_register_lo() == data->as_register_hi(), "should be a single register"); 4171 if (code == lir_xadd) { 4172 if (os::is_MP()) { 4173 __ lock(); 4174 } 4175 __ xaddq(as_Address(src->as_address_ptr()), data->as_register_lo()); 4176 } else { 4177 __ xchgq(data->as_register_lo(), as_Address(src->as_address_ptr())); 4178 } 4179 #else 4180 ShouldNotReachHere(); 4181 #endif 4182 } else { 4183 ShouldNotReachHere(); 4184 } 4185 } 4186 4187 void LIR_Assembler::emit_crypto_cbc_aes (LIR_OpCrypto_CBC_AES * op) { 4188 ShouldNotReachHere(); 4189 } 4190 #undef __ |