Chromium Code Reviews| Index: src/x64/macro-assembler-x64.cc |
| diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc |
| index 407703ef8ffb303d4e46f4f35681edb31aa62a8d..28fa6f512125aae134be84fc749e8493dedb5846 100644 |
| --- a/src/x64/macro-assembler-x64.cc |
| +++ b/src/x64/macro-assembler-x64.cc |
| @@ -2974,6 +2974,32 @@ void MacroAssembler::Ucomisd(XMMRegister src1, const Operand& src2) { |
| } |
| +// ---------------------------------------------------------------------------- |
| + |
| +void MacroAssembler::Absps(XMMRegister dst) { |
| + static const struct V8_ALIGNED(16) { |
| + uint32_t a; |
| + uint32_t b; |
| + uint32_t c; |
| + uint32_t d; |
| + } float_absolute_constant = {0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF}; |
| + Set(kScratchRegister, reinterpret_cast<intptr_t>(&float_absolute_constant)); |
|
Benedikt Meurer
2016/07/18 04:47:52
Can we somehow put this somewhere near the roots a
|
| + Andps(dst, Operand(kScratchRegister, 0)); |
| +} |
| + |
| + |
| +void MacroAssembler::Negps(XMMRegister dst) { |
| + static const struct V8_ALIGNED(16) { |
| + uint32_t a; |
| + uint32_t b; |
| + uint32_t c; |
| + uint32_t d; |
| + } float_negate_constant = {0x80000000, 0x80000000, 0x80000000, 0x80000000}; |
| + Set(kScratchRegister, reinterpret_cast<intptr_t>(&float_negate_constant)); |
| + Xorps(dst, Operand(kScratchRegister, 0)); |
|
bbudge
2016/07/18 14:08:09
It seems like we could avoid the memory access wit
|
| +} |
| + |
| + |
| void MacroAssembler::Cmp(Register dst, Handle<Object> source) { |
| AllowDeferredHandleDereference smi_check; |
| if (source->IsSmi()) { |