3712 |
3712 |
3713 } else if (dest->is_single_xmm()) { |
3713 } else if (dest->is_single_xmm()) { |
3714 if (left->as_xmm_float_reg() != dest->as_xmm_float_reg()) { |
3714 if (left->as_xmm_float_reg() != dest->as_xmm_float_reg()) { |
3715 __ movflt(dest->as_xmm_float_reg(), left->as_xmm_float_reg()); |
3715 __ movflt(dest->as_xmm_float_reg(), left->as_xmm_float_reg()); |
3716 } |
3716 } |
3717 if (UseAVX > 1) { |
3717 if (UseAVX > 0) { |
3718 __ vnegatess(dest->as_xmm_float_reg(), dest->as_xmm_float_reg(), |
3718 __ vnegatess(dest->as_xmm_float_reg(), dest->as_xmm_float_reg(), |
3719 ExternalAddress((address)float_signflip_pool)); |
3719 ExternalAddress((address)float_signflip_pool)); |
3720 } else { |
3720 } else { |
3721 __ xorps(dest->as_xmm_float_reg(), |
3721 __ xorps(dest->as_xmm_float_reg(), |
3722 ExternalAddress((address)float_signflip_pool)); |
3722 ExternalAddress((address)float_signflip_pool)); |
3723 } |
3723 } |
3724 } else if (dest->is_double_xmm()) { |
3724 } else if (dest->is_double_xmm()) { |
3725 if (left->as_xmm_double_reg() != dest->as_xmm_double_reg()) { |
3725 if (left->as_xmm_double_reg() != dest->as_xmm_double_reg()) { |
3726 __ movdbl(dest->as_xmm_double_reg(), left->as_xmm_double_reg()); |
3726 __ movdbl(dest->as_xmm_double_reg(), left->as_xmm_double_reg()); |
3727 } |
3727 } |
3728 if (UseAVX > 1) { |
3728 if (UseAVX > 0) { |
3729 __ vnegatesd(dest->as_xmm_double_reg(), dest->as_xmm_double_reg(), |
3729 __ vnegatesd(dest->as_xmm_double_reg(), dest->as_xmm_double_reg(), |
3730 ExternalAddress((address)double_signflip_pool)); |
3730 ExternalAddress((address)double_signflip_pool)); |
3731 } else { |
3731 } else { |
3732 __ xorpd(dest->as_xmm_double_reg(), |
3732 __ xorpd(dest->as_xmm_double_reg(), |
3733 ExternalAddress((address)double_signflip_pool)); |
3733 ExternalAddress((address)double_signflip_pool)); |