mirror of
https://github.com/corda/corda.git
synced 2025-03-13 07:54:32 +00:00
use thunks for floating point ops if SSE is not available
This commit is contained in:
parent
175cb8e89b
commit
0bdf1d8e82
@ -2919,9 +2919,13 @@ class MyArchitecture: public Assembler::Architecture {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case FloatAbsolute:
|
case FloatAbsolute:
|
||||||
|
if (useSSE(&c)) {
|
||||||
*aTypeMask = (1 << RegisterOperand);
|
*aTypeMask = (1 << RegisterOperand);
|
||||||
*aRegisterMask = (static_cast<uint64_t>(FloatRegisterMask) << 32)
|
*aRegisterMask = (static_cast<uint64_t>(FloatRegisterMask) << 32)
|
||||||
| FloatRegisterMask;
|
| FloatRegisterMask;
|
||||||
|
} else {
|
||||||
|
*thunk = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FloatNegate:
|
case FloatNegate:
|
||||||
@ -2935,9 +2939,13 @@ class MyArchitecture: public Assembler::Architecture {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case FloatSquareRoot:
|
case FloatSquareRoot:
|
||||||
|
if (useSSE(&c)) {
|
||||||
*aTypeMask = (1 << RegisterOperand) | (1 << MemoryOperand);
|
*aTypeMask = (1 << RegisterOperand) | (1 << MemoryOperand);
|
||||||
*aRegisterMask = (static_cast<uint64_t>(FloatRegisterMask) << 32)
|
*aRegisterMask = (static_cast<uint64_t>(FloatRegisterMask) << 32)
|
||||||
| FloatRegisterMask;
|
| FloatRegisterMask;
|
||||||
|
} else {
|
||||||
|
*thunk = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Float2Float:
|
case Float2Float:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user