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
20
src/x86.cpp
20
src/x86.cpp
@ -2919,9 +2919,13 @@ class MyArchitecture: public Assembler::Architecture {
|
||||
break;
|
||||
|
||||
case FloatAbsolute:
|
||||
*aTypeMask = (1 << RegisterOperand);
|
||||
*aRegisterMask = (static_cast<uint64_t>(FloatRegisterMask) << 32)
|
||||
| FloatRegisterMask;
|
||||
if (useSSE(&c)) {
|
||||
*aTypeMask = (1 << RegisterOperand);
|
||||
*aRegisterMask = (static_cast<uint64_t>(FloatRegisterMask) << 32)
|
||||
| FloatRegisterMask;
|
||||
} else {
|
||||
*thunk = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case FloatNegate:
|
||||
@ -2935,9 +2939,13 @@ class MyArchitecture: public Assembler::Architecture {
|
||||
break;
|
||||
|
||||
case FloatSquareRoot:
|
||||
*aTypeMask = (1 << RegisterOperand) | (1 << MemoryOperand);
|
||||
*aRegisterMask = (static_cast<uint64_t>(FloatRegisterMask) << 32)
|
||||
| FloatRegisterMask;
|
||||
if (useSSE(&c)) {
|
||||
*aTypeMask = (1 << RegisterOperand) | (1 << MemoryOperand);
|
||||
*aRegisterMask = (static_cast<uint64_t>(FloatRegisterMask) << 32)
|
||||
| FloatRegisterMask;
|
||||
} else {
|
||||
*thunk = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case Float2Float:
|
||||
|
Loading…
x
Reference in New Issue
Block a user