src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp

Print this page




3589   assert (code == lir_xchg, "no xadd on sparc");
3590 
3591   if (data->type() == T_INT) {
3592     __ swap(as_Address(addr), data->as_register());
3593   } else if (data->is_oop()) {
3594     Register obj = data->as_register();
3595     Register narrow = tmp->as_register();
3596 #ifdef _LP64
3597     assert(UseCompressedOops, "swap is 32bit only");
3598     __ encode_heap_oop(obj, narrow);
3599     __ swap(as_Address(addr), narrow);
3600     __ decode_heap_oop(narrow, obj);
3601 #else
3602     __ swap(as_Address(addr), obj);
3603 #endif
3604   } else {
3605     ShouldNotReachHere();
3606   }
3607 }
3608 




3609 #undef __


3589   assert (code == lir_xchg, "no xadd on sparc");
3590 
3591   if (data->type() == T_INT) {
3592     __ swap(as_Address(addr), data->as_register());
3593   } else if (data->is_oop()) {
3594     Register obj = data->as_register();
3595     Register narrow = tmp->as_register();
3596 #ifdef _LP64
3597     assert(UseCompressedOops, "swap is 32bit only");
3598     __ encode_heap_oop(obj, narrow);
3599     __ swap(as_Address(addr), narrow);
3600     __ decode_heap_oop(narrow, obj);
3601 #else
3602     __ swap(as_Address(addr), obj);
3603 #endif
3604   } else {
3605     ShouldNotReachHere();
3606   }
3607 }
3608 
3609 void LIR_Assembler::emit_crypto_cbc_aes (LIR_OpCrypto_CBC_AES * op) {
3610   ShouldNotReachHere();
3611 }
3612 
3613 #undef __