|
|
|
@ -111,7 +111,7 @@ namespace glm |
|
|
|
|
|
|
|
|
|
Borrow = x >= y ? static_cast<uint32>(0) : static_cast<uint32>(1); |
|
|
|
|
if(x > y) |
|
|
|
|
return static_cast<uint32>(static_cast<int64>(x) -static_cast<int64>(y)); |
|
|
|
|
return static_cast<uint32>(static_cast<int64>(x) - static_cast<int64>(y)); |
|
|
|
|
else |
|
|
|
|
return static_cast<uint32>((static_cast<int64>(1) << static_cast<int64>(32)) + static_cast<int64>(x) - static_cast<int64>(y)); |
|
|
|
|
} |
|
|
|
@ -173,7 +173,8 @@ namespace glm |
|
|
|
|
uint64 Value64 = static_cast<uint64>(x) * static_cast<uint64>(y); |
|
|
|
|
uint32* PointerMSB = (reinterpret_cast<uint32*>(&Value64) + 1); |
|
|
|
|
msb = *PointerMSB; |
|
|
|
|
lsb = reinterpret_cast<uint32&>(Value64); |
|
|
|
|
uint32* PointerLSB = (reinterpret_cast<uint32*>(&Value64) + 0); |
|
|
|
|
lsb = *PointerLSB; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
@ -233,7 +234,8 @@ namespace glm |
|
|
|
|
int64 Value64 = static_cast<int64>(x) * static_cast<int64>(y); |
|
|
|
|
int32* PointerMSB = (reinterpret_cast<int32*>(&Value64) + 1); |
|
|
|
|
msb = *PointerMSB; |
|
|
|
|
lsb = reinterpret_cast<int32&>(Value64); |
|
|
|
|
int32* PointerLSB = (reinterpret_cast<int32*>(&Value64)); |
|
|
|
|
lsb = *PointerLSB; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
|