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 __ |