1609 static jlong double_signflip_pool[2*2]; |
1609 static jlong double_signflip_pool[2*2]; |
1610 |
1610 |
1611 void TemplateTable::fneg() { |
1611 void TemplateTable::fneg() { |
1612 transition(ftos, ftos); |
1612 transition(ftos, ftos); |
1613 if (UseSSE >= 1) { |
1613 if (UseSSE >= 1) { |
1614 static jlong *float_signflip = double_quadword(&float_signflip_pool[1], 0x8000000080000000, 0x8000000080000000); |
1614 static jlong *float_signflip = double_quadword(&float_signflip_pool[1], CONST64(0x8000000080000000), CONST64(0x8000000080000000)); |
1615 __ xorps(xmm0, ExternalAddress((address) float_signflip)); |
1615 __ xorps(xmm0, ExternalAddress((address) float_signflip)); |
1616 } else { |
1616 } else { |
1617 LP64_ONLY(ShouldNotReachHere()); |
1617 LP64_ONLY(ShouldNotReachHere()); |
1618 NOT_LP64(__ fchs()); |
1618 NOT_LP64(__ fchs()); |
1619 } |
1619 } |
1620 } |
1620 } |
1621 |
1621 |
1622 void TemplateTable::dneg() { |
1622 void TemplateTable::dneg() { |
1623 transition(dtos, dtos); |
1623 transition(dtos, dtos); |
1624 if (UseSSE >= 2) { |
1624 if (UseSSE >= 2) { |
1625 static jlong *double_signflip = double_quadword(&double_signflip_pool[1], 0x8000000000000000, 0x8000000000000000); |
1625 static jlong *double_signflip = |
|
1626 double_quadword(&double_signflip_pool[1], CONST64(0x8000000000000000), CONST64(0x8000000000000000)); |
1626 __ xorpd(xmm0, ExternalAddress((address) double_signflip)); |
1627 __ xorpd(xmm0, ExternalAddress((address) double_signflip)); |
1627 } else { |
1628 } else { |
1628 #ifdef _LP64 |
1629 #ifdef _LP64 |
1629 ShouldNotReachHere(); |
1630 ShouldNotReachHere(); |
1630 #else |
1631 #else |