| Index: src/x87/code-stubs-x87.h
|
| diff --git a/src/ia32/code-stubs-ia32.h b/src/x87/code-stubs-x87.h
|
| similarity index 88%
|
| copy from src/ia32/code-stubs-ia32.h
|
| copy to src/x87/code-stubs-x87.h
|
| index 4cefec01777b721e212c0ff6ef3f58645d142c99..0248c9a6d8418b3c70bb505ddc957bf80bc11149 100644
|
| --- a/src/ia32/code-stubs-ia32.h
|
| +++ b/src/x87/code-stubs-x87.h
|
| @@ -2,8 +2,8 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef V8_IA32_CODE_STUBS_IA32_H_
|
| -#define V8_IA32_CODE_STUBS_IA32_H_
|
| +#ifndef V8_X87_CODE_STUBS_X87_H_
|
| +#define V8_X87_CODE_STUBS_X87_H_
|
|
|
| #include "macro-assembler.h"
|
| #include "ic-inl.h"
|
| @@ -19,8 +19,8 @@ void ArrayNativeCode(MacroAssembler* masm,
|
|
|
| class StoreBufferOverflowStub: public PlatformCodeStub {
|
| public:
|
| - StoreBufferOverflowStub(Isolate* isolate, SaveFPRegsMode save_fp)
|
| - : PlatformCodeStub(isolate), save_doubles_(save_fp) { }
|
| + explicit StoreBufferOverflowStub(Isolate* isolate)
|
| + : PlatformCodeStub(isolate) { }
|
|
|
| void Generate(MacroAssembler* masm);
|
|
|
| @@ -28,10 +28,8 @@ class StoreBufferOverflowStub: public PlatformCodeStub {
|
| virtual bool SometimesSetsUpAFrame() { return false; }
|
|
|
| private:
|
| - SaveFPRegsMode save_doubles_;
|
| -
|
| Major MajorKey() { return StoreBufferOverflow; }
|
| - int MinorKey() { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; }
|
| + int MinorKey() { return 0; }
|
| };
|
|
|
|
|
| @@ -183,14 +181,12 @@ class RecordWriteStub: public PlatformCodeStub {
|
| Register object,
|
| Register value,
|
| Register address,
|
| - RememberedSetAction remembered_set_action,
|
| - SaveFPRegsMode fp_mode)
|
| + RememberedSetAction remembered_set_action)
|
| : PlatformCodeStub(isolate),
|
| object_(object),
|
| value_(value),
|
| address_(address),
|
| remembered_set_action_(remembered_set_action),
|
| - save_fp_regs_mode_(fp_mode),
|
| regs_(object, // An input reg.
|
| address, // An input reg.
|
| value) { // One scratch reg.
|
| @@ -331,31 +327,12 @@ class RecordWriteStub: public PlatformCodeStub {
|
| // saved registers that were not already preserved. The caller saved
|
| // registers are eax, ecx and edx. The three scratch registers (incl. ecx)
|
| // will be restored by other means so we don't bother pushing them here.
|
| - void SaveCallerSaveRegisters(MacroAssembler* masm, SaveFPRegsMode mode) {
|
| + void SaveCallerSaveRegisters(MacroAssembler* masm) {
|
| if (!scratch0_.is(eax) && !scratch1_.is(eax)) masm->push(eax);
|
| if (!scratch0_.is(edx) && !scratch1_.is(edx)) masm->push(edx);
|
| - if (mode == kSaveFPRegs) {
|
| - masm->sub(esp,
|
| - Immediate(kDoubleSize * (XMMRegister::kMaxNumRegisters - 1)));
|
| - // Save all XMM registers except XMM0.
|
| - for (int i = XMMRegister::kMaxNumRegisters - 1; i > 0; i--) {
|
| - XMMRegister reg = XMMRegister::from_code(i);
|
| - masm->movsd(Operand(esp, (i - 1) * kDoubleSize), reg);
|
| - }
|
| - }
|
| }
|
|
|
| - inline void RestoreCallerSaveRegisters(MacroAssembler*masm,
|
| - SaveFPRegsMode mode) {
|
| - if (mode == kSaveFPRegs) {
|
| - // Restore all XMM registers except XMM0.
|
| - for (int i = XMMRegister::kMaxNumRegisters - 1; i > 0; i--) {
|
| - XMMRegister reg = XMMRegister::from_code(i);
|
| - masm->movsd(reg, Operand(esp, (i - 1) * kDoubleSize));
|
| - }
|
| - masm->add(esp,
|
| - Immediate(kDoubleSize * (XMMRegister::kMaxNumRegisters - 1)));
|
| - }
|
| + inline void RestoreCallerSaveRegisters(MacroAssembler*masm) {
|
| if (!scratch0_.is(edx) && !scratch1_.is(edx)) masm->pop(edx);
|
| if (!scratch0_.is(eax) && !scratch1_.is(eax)) masm->pop(eax);
|
| }
|
| @@ -411,8 +388,7 @@ class RecordWriteStub: public PlatformCodeStub {
|
| return ObjectBits::encode(object_.code()) |
|
| ValueBits::encode(value_.code()) |
|
| AddressBits::encode(address_.code()) |
|
| - RememberedSetActionBits::encode(remembered_set_action_) |
|
| - SaveFPRegsModeBits::encode(save_fp_regs_mode_);
|
| + RememberedSetActionBits::encode(remembered_set_action_);
|
| }
|
|
|
| void Activate(Code* code) {
|
| @@ -423,17 +399,15 @@ class RecordWriteStub: public PlatformCodeStub {
|
| class ValueBits: public BitField<int, 3, 3> {};
|
| class AddressBits: public BitField<int, 6, 3> {};
|
| class RememberedSetActionBits: public BitField<RememberedSetAction, 9, 1> {};
|
| - class SaveFPRegsModeBits: public BitField<SaveFPRegsMode, 10, 1> {};
|
|
|
| Register object_;
|
| Register value_;
|
| Register address_;
|
| RememberedSetAction remembered_set_action_;
|
| - SaveFPRegsMode save_fp_regs_mode_;
|
| RegisterAllocation regs_;
|
| };
|
|
|
|
|
| } } // namespace v8::internal
|
|
|
| -#endif // V8_IA32_CODE_STUBS_IA32_H_
|
| +#endif // V8_X87_CODE_STUBS_X87_H_
|
|
|