Commit 899fe964 authored by yangguo@chromium.org's avatar yangguo@chromium.org

Encode CEntryStub properties in the minor key.

Eventually, all stubs should encode its properties in the minor key
so that stubs can be restored directly from the stub key.

R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/502713003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 9fcbeb4a
......@@ -425,7 +425,7 @@ class ConvertToDoubleStub : public PlatformCodeStub {
class OpBits: public BitField<Token::Value, 2, 14> {};
Major MajorKey() const { return ConvertToDouble; }
int MinorKey() const {
uint32_t MinorKey() const {
// Encode the parameters in a unique 16 bit value.
return result1_.code() +
(result2_.code() << 4) +
......@@ -1392,7 +1392,7 @@ void CEntryStub::Generate(MacroAssembler* masm) {
// Enter the exit frame that transitions from JavaScript to C++.
FrameScope scope(masm, StackFrame::MANUAL);
__ EnterExitFrame(save_doubles_);
__ EnterExitFrame(save_doubles());
// Store a copy of argc in callee-saved registers for later.
__ mov(r4, Operand(r0));
......@@ -1476,7 +1476,7 @@ void CEntryStub::Generate(MacroAssembler* masm) {
// sp: stack pointer
// fp: frame pointer
// Callee-saved register r4 still holds argc.
__ LeaveExitFrame(save_doubles_, r4, true);
__ LeaveExitFrame(save_doubles(), r4, true);
__ mov(pc, lr);
// Handling of exception.
......
......@@ -28,7 +28,7 @@ class StoreBufferOverflowStub: public PlatformCodeStub {
SaveFPRegsMode save_doubles_;
Major MajorKey() const { return StoreBufferOverflow; }
int MinorKey() const { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; }
uint32_t MinorKey() const { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; }
};
......@@ -69,7 +69,7 @@ class SubStringStub: public PlatformCodeStub {
private:
Major MajorKey() const { return SubString; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
void Generate(MacroAssembler* masm);
};
......@@ -100,7 +100,7 @@ class StringCompareStub: public PlatformCodeStub {
private:
virtual Major MajorKey() const { return StringCompare; }
virtual int MinorKey() const { return 0; }
virtual uint32_t MinorKey() const { return 0; }
virtual void Generate(MacroAssembler* masm);
static void GenerateAsciiCharsCompareLoop(MacroAssembler* masm,
......@@ -140,7 +140,7 @@ class WriteInt32ToHeapNumberStub : public PlatformCodeStub {
class ScratchRegisterBits: public BitField<int, 8, 4> {};
Major MajorKey() const { return WriteInt32ToHeapNumber; }
int MinorKey() const {
uint32_t MinorKey() const {
// Encode the parameters in a unique 16 bit value.
return IntRegisterBits::encode(the_int_.code())
| HeapNumberRegisterBits::encode(the_heap_number_.code())
......@@ -307,7 +307,7 @@ class RecordWriteStub: public PlatformCodeStub {
Major MajorKey() const { return RecordWrite; }
int MinorKey() const {
uint32_t MinorKey() const {
return ObjectBits::encode(object_.code()) |
ValueBits::encode(value_.code()) |
AddressBits::encode(address_.code()) |
......@@ -348,7 +348,7 @@ class DirectCEntryStub: public PlatformCodeStub {
private:
Major MajorKey() const { return DirectCEntry; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
bool NeedsImmovableCode() { return true; }
};
......@@ -395,7 +395,7 @@ class NameDictionaryLookupStub: public PlatformCodeStub {
Major MajorKey() const { return NameDictionaryLookup; }
int MinorKey() const { return LookupModeBits::encode(mode_); }
uint32_t MinorKey() const { return LookupModeBits::encode(mode_); }
class LookupModeBits: public BitField<LookupMode, 0, 1> {};
......
......@@ -1377,7 +1377,7 @@ void CEntryStub::Generate(MacroAssembler* masm) {
// Enter the exit frame. Reserve three slots to preserve x21-x23 callee-saved
// registers.
FrameScope scope(masm, StackFrame::MANUAL);
__ EnterExitFrame(save_doubles_, x10, 3);
__ EnterExitFrame(save_doubles(), x10, 3);
DCHECK(csp.Is(__ StackPointer()));
// Poke callee-saved registers into reserved space.
......@@ -1474,7 +1474,7 @@ void CEntryStub::Generate(MacroAssembler* masm) {
__ Peek(argc, 2 * kPointerSize);
__ Peek(target, 3 * kPointerSize);
__ LeaveExitFrame(save_doubles_, x10, true);
__ LeaveExitFrame(save_doubles(), x10, true);
DCHECK(jssp.Is(__ StackPointer()));
// Pop or drop the remaining stack slots and return from the stub.
// jssp[24]: Arguments array (of size argc), including receiver.
......
......@@ -28,7 +28,7 @@ class StoreBufferOverflowStub: public PlatformCodeStub {
SaveFPRegsMode save_doubles_;
Major MajorKey() const { return StoreBufferOverflow; }
int MinorKey() const { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; }
uint32_t MinorKey() const { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; }
};
......@@ -63,7 +63,7 @@ class StoreRegistersStateStub: public PlatformCodeStub {
static void GenerateAheadOfTime(Isolate* isolate);
private:
Major MajorKey() const { return StoreRegistersState; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
void Generate(MacroAssembler* masm);
};
......@@ -77,7 +77,7 @@ class RestoreRegistersStateStub: public PlatformCodeStub {
static void GenerateAheadOfTime(Isolate* isolate);
private:
Major MajorKey() const { return RestoreRegistersState; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
void Generate(MacroAssembler* masm);
};
......@@ -303,16 +303,14 @@ class RecordWriteStub: public PlatformCodeStub {
Major MajorKey() const { return RecordWrite; }
int MinorKey() const {
uint32_t MinorKey() const {
return MinorKeyFor(object_, value_, address_, remembered_set_action_,
save_fp_regs_mode_);
}
static int MinorKeyFor(Register object,
Register value,
Register address,
RememberedSetAction action,
SaveFPRegsMode fp_mode) {
static uint32_t MinorKeyFor(Register object, Register value, Register address,
RememberedSetAction action,
SaveFPRegsMode fp_mode) {
DCHECK(object.Is64Bits());
DCHECK(value.Is64Bits());
DCHECK(address.Is64Bits());
......@@ -353,7 +351,7 @@ class DirectCEntryStub: public PlatformCodeStub {
private:
Major MajorKey() const { return DirectCEntry; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
bool NeedsImmovableCode() { return true; }
};
......@@ -400,7 +398,7 @@ class NameDictionaryLookupStub: public PlatformCodeStub {
Major MajorKey() const { return NameDictionaryLookup; }
int MinorKey() const { return LookupModeBits::encode(mode_); }
uint32_t MinorKey() const { return LookupModeBits::encode(mode_); }
class LookupModeBits: public BitField<LookupMode, 0, 1> {};
......@@ -414,7 +412,7 @@ class SubStringStub: public PlatformCodeStub {
private:
Major MajorKey() const { return SubString; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
void Generate(MacroAssembler* masm);
};
......@@ -444,7 +442,7 @@ class StringCompareStub: public PlatformCodeStub {
private:
virtual Major MajorKey() const { return StringCompare; }
virtual int MinorKey() const { return 0; }
virtual uint32_t MinorKey() const { return 0; }
virtual void Generate(MacroAssembler* masm);
static void GenerateAsciiCharsCompareLoop(MacroAssembler* masm,
......
......@@ -380,7 +380,7 @@ bool ICCompareStub::FindCodeInSpecialCache(Code** code_out) {
}
int ICCompareStub::MinorKey() const {
uint32_t ICCompareStub::MinorKey() const {
return OpField::encode(op_ - Token::EQ) |
LeftStateField::encode(left_) |
RightStateField::encode(right_) |
......
This diff is collapsed.
......@@ -252,16 +252,4 @@ void ArgumentsAccessStub::Generate(MacroAssembler* masm) {
}
}
int CEntryStub::MinorKey() const {
int result = (save_doubles_ == kSaveFPRegs) ? 1 : 0;
DCHECK(result_size_ == 1 || result_size_ == 2);
#ifdef _WIN64
return result | ((result_size_ == 1) ? 0 : 2);
#else
return result;
#endif
}
} } // namespace v8::internal
......@@ -2557,7 +2557,7 @@ void CEntryStub::Generate(MacroAssembler* masm) {
ProfileEntryHookStub::MaybeCallEntryHook(masm);
// Enter the exit frame that transitions from JavaScript to C++.
__ EnterExitFrame(save_doubles_ == kSaveFPRegs);
__ EnterExitFrame(save_doubles());
// ebx: pointer to C function (C callee-saved)
// ebp: frame pointer (restored after C call)
......@@ -2565,7 +2565,7 @@ void CEntryStub::Generate(MacroAssembler* masm) {
// edi: number of arguments including receiver (C callee-saved)
// esi: pointer to the first argument (C callee-saved)
// Result returned in eax, or eax+edx if result_size_ is 2.
// Result returned in eax, or eax+edx if result size is 2.
// Check stack alignment.
if (FLAG_debug_code) {
......@@ -2613,7 +2613,7 @@ void CEntryStub::Generate(MacroAssembler* masm) {
}
// Exit the JavaScript to C++ exit frame.
__ LeaveExitFrame(save_doubles_ == kSaveFPRegs);
__ LeaveExitFrame(save_doubles());
__ ret(0);
// Handling of exception.
......
......@@ -30,7 +30,7 @@ class StoreBufferOverflowStub: public PlatformCodeStub {
SaveFPRegsMode save_doubles_;
Major MajorKey() const { return StoreBufferOverflow; }
int MinorKey() const { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; }
uint32_t MinorKey() const { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; }
};
......@@ -70,7 +70,7 @@ class SubStringStub: public PlatformCodeStub {
private:
Major MajorKey() const { return SubString; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
void Generate(MacroAssembler* masm);
};
......@@ -98,7 +98,7 @@ class StringCompareStub: public PlatformCodeStub {
private:
virtual Major MajorKey() const { return StringCompare; }
virtual int MinorKey() const { return 0; }
virtual uint32_t MinorKey() const { return 0; }
virtual void Generate(MacroAssembler* masm);
static void GenerateAsciiCharsCompareLoop(
......@@ -157,7 +157,7 @@ class NameDictionaryLookupStub: public PlatformCodeStub {
Major MajorKey() const { return NameDictionaryLookup; }
int MinorKey() const {
uint32_t MinorKey() const {
return DictionaryBits::encode(dictionary_.code()) |
ResultBits::encode(result_.code()) |
IndexBits::encode(index_.code()) |
......@@ -406,7 +406,7 @@ class RecordWriteStub: public PlatformCodeStub {
Major MajorKey() const { return RecordWrite; }
int MinorKey() const {
uint32_t MinorKey() const {
return ObjectBits::encode(object_.code()) |
ValueBits::encode(value_.code()) |
AddressBits::encode(address_.code()) |
......
......@@ -407,7 +407,7 @@ class ConvertToDoubleStub : public PlatformCodeStub {
class OpBits: public BitField<Token::Value, 2, 14> {};
Major MajorKey() const { return ConvertToDouble; }
int MinorKey() const {
uint32_t MinorKey() const {
// Encode the parameters in a unique 16 bit value.
return result1_.code() +
(result2_.code() << 4) +
......@@ -1486,7 +1486,7 @@ void CEntryStub::Generate(MacroAssembler* masm) {
// Enter the exit frame that transitions from JavaScript to C++.
FrameScope scope(masm, StackFrame::MANUAL);
__ EnterExitFrame(save_doubles_);
__ EnterExitFrame(save_doubles());
// s0: number of arguments including receiver (C callee-saved)
// s1: pointer to first argument (C callee-saved)
......@@ -1574,7 +1574,7 @@ void CEntryStub::Generate(MacroAssembler* masm) {
// sp: stack pointer
// fp: frame pointer
// s0: still holds argc (callee-saved).
__ LeaveExitFrame(save_doubles_, s0, true, EMIT_RETURN);
__ LeaveExitFrame(save_doubles(), s0, true, EMIT_RETURN);
// Handling of exception.
__ bind(&exception_returned);
......
......@@ -29,7 +29,7 @@ class StoreBufferOverflowStub: public PlatformCodeStub {
SaveFPRegsMode save_doubles_;
Major MajorKey() const { return StoreBufferOverflow; }
int MinorKey() const { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; }
uint32_t MinorKey() const { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; }
};
......@@ -70,7 +70,7 @@ class SubStringStub: public PlatformCodeStub {
private:
Major MajorKey() const { return SubString; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
void Generate(MacroAssembler* masm);
};
......@@ -84,7 +84,7 @@ class StoreRegistersStateStub: public PlatformCodeStub {
static void GenerateAheadOfTime(Isolate* isolate);
private:
Major MajorKey() const { return StoreRegistersState; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
void Generate(MacroAssembler* masm);
};
......@@ -97,7 +97,7 @@ class RestoreRegistersStateStub: public PlatformCodeStub {
static void GenerateAheadOfTime(Isolate* isolate);
private:
Major MajorKey() const { return RestoreRegistersState; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
void Generate(MacroAssembler* masm);
};
......@@ -126,7 +126,7 @@ class StringCompareStub: public PlatformCodeStub {
private:
virtual Major MajorKey() const { return StringCompare; }
virtual int MinorKey() const { return 0; }
virtual uint32_t MinorKey() const { return 0; }
virtual void Generate(MacroAssembler* masm);
static void GenerateAsciiCharsCompareLoop(MacroAssembler* masm,
......@@ -176,7 +176,7 @@ class WriteInt32ToHeapNumberStub : public PlatformCodeStub {
class SignRegisterBits: public BitField<int, 12, 4> {};
Major MajorKey() const { return WriteInt32ToHeapNumber; }
int MinorKey() const {
uint32_t MinorKey() const {
// Encode the parameters in a unique 16 bit value.
return IntRegisterBits::encode(the_int_.code())
| HeapNumberRegisterBits::encode(the_heap_number_.code())
......@@ -348,7 +348,7 @@ class RecordWriteStub: public PlatformCodeStub {
Major MajorKey() const { return RecordWrite; }
int MinorKey() const {
uint32_t MinorKey() const {
return ObjectBits::encode(object_.code()) |
ValueBits::encode(value_.code()) |
AddressBits::encode(address_.code()) |
......@@ -389,7 +389,7 @@ class DirectCEntryStub: public PlatformCodeStub {
private:
Major MajorKey() const { return DirectCEntry; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
bool NeedsImmovableCode() { return true; }
};
......@@ -436,7 +436,7 @@ class NameDictionaryLookupStub: public PlatformCodeStub {
Major MajorKey() const { return NameDictionaryLookup; }
int MinorKey() const { return LookupModeBits::encode(mode_); }
uint32_t MinorKey() const { return LookupModeBits::encode(mode_); }
class LookupModeBits: public BitField<LookupMode, 0, 1> {};
......
......@@ -406,7 +406,7 @@ class ConvertToDoubleStub : public PlatformCodeStub {
class OpBits: public BitField<Token::Value, 2, 14> {};
Major MajorKey() const { return ConvertToDouble; }
int MinorKey() const {
uint32_t MinorKey() const {
// Encode the parameters in a unique 16 bit value.
return result1_.code() +
(result2_.code() << 4) +
......
......@@ -29,7 +29,7 @@ class StoreBufferOverflowStub: public PlatformCodeStub {
SaveFPRegsMode save_doubles_;
Major MajorKey() const { return StoreBufferOverflow; }
int MinorKey() const { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; }
uint32_t MinorKey() const { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; }
};
......@@ -69,7 +69,7 @@ class SubStringStub: public PlatformCodeStub {
private:
Major MajorKey() const { return SubString; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
void Generate(MacroAssembler* masm);
};
......@@ -83,7 +83,7 @@ class StoreRegistersStateStub: public PlatformCodeStub {
static void GenerateAheadOfTime(Isolate* isolate);
private:
Major MajorKey() const { return StoreRegistersState; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
void Generate(MacroAssembler* masm);
};
......@@ -96,7 +96,7 @@ class RestoreRegistersStateStub: public PlatformCodeStub {
static void GenerateAheadOfTime(Isolate* isolate);
private:
Major MajorKey() const { return RestoreRegistersState; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
void Generate(MacroAssembler* masm);
};
......@@ -125,7 +125,7 @@ class StringCompareStub: public PlatformCodeStub {
private:
virtual Major MajorKey() const { return StringCompare; }
virtual int MinorKey() const { return 0; }
virtual uint32_t MinorKey() const { return 0; }
virtual void Generate(MacroAssembler* masm);
static void GenerateAsciiCharsCompareLoop(MacroAssembler* masm,
......@@ -175,7 +175,7 @@ class WriteInt32ToHeapNumberStub : public PlatformCodeStub {
class SignRegisterBits: public BitField<int, 12, 4> {};
Major MajorKey() const { return WriteInt32ToHeapNumber; }
int MinorKey() const {
uint32_t MinorKey() const {
// Encode the parameters in a unique 16 bit value.
return IntRegisterBits::encode(the_int_.code())
| HeapNumberRegisterBits::encode(the_heap_number_.code())
......@@ -347,7 +347,7 @@ class RecordWriteStub: public PlatformCodeStub {
Major MajorKey() const { return RecordWrite; }
int MinorKey() const {
uint32_t MinorKey() const {
return ObjectBits::encode(object_.code()) |
ValueBits::encode(value_.code()) |
AddressBits::encode(address_.code()) |
......@@ -388,7 +388,7 @@ class DirectCEntryStub: public PlatformCodeStub {
private:
Major MajorKey() const { return DirectCEntry; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
bool NeedsImmovableCode() { return true; }
};
......@@ -435,7 +435,7 @@ class NameDictionaryLookupStub: public PlatformCodeStub {
Major MajorKey() const { return NameDictionaryLookup; }
int MinorKey() const { return LookupModeBits::encode(mode_); }
uint32_t MinorKey() const { return LookupModeBits::encode(mode_); }
class LookupModeBits: public BitField<LookupMode, 0, 1> {};
......
......@@ -2435,11 +2435,11 @@ void CEntryStub::Generate(MacroAssembler* masm) {
// Enter the exit frame that transitions from JavaScript to C++.
#ifdef _WIN64
int arg_stack_space = (result_size_ < 2 ? 2 : 4);
#else
int arg_stack_space = (result_size() < 2 ? 2 : 4);
#else // _WIN64
int arg_stack_space = 0;
#endif
__ EnterExitFrame(arg_stack_space, save_doubles_);
#endif // _WIN64
__ EnterExitFrame(arg_stack_space, save_doubles());
// rbx: pointer to builtin function (C callee-saved).
// rbp: frame pointer of exit frame (restored after C call).
......@@ -2461,14 +2461,14 @@ void CEntryStub::Generate(MacroAssembler* masm) {
// Windows 64-bit ABI passes arguments in rcx, rdx, r8, r9.
// Pass argv and argc as two parameters. The arguments object will
// be created by stubs declared by DECLARE_RUNTIME_FUNCTION().
if (result_size_ < 2) {
if (result_size() < 2) {
// Pass a pointer to the Arguments object as the first argument.
// Return result in single register (rax).
__ movp(rcx, r14); // argc.
__ movp(rdx, r15); // argv.
__ Move(r8, ExternalReference::isolate_address(isolate()));
} else {
DCHECK_EQ(2, result_size_);
DCHECK_EQ(2, result_size());
// Pass a pointer to the result location as the first argument.
__ leap(rcx, StackSpaceOperand(2));
// Pass a pointer to the Arguments object as the second argument.
......@@ -2482,21 +2482,21 @@ void CEntryStub::Generate(MacroAssembler* masm) {
__ movp(rdi, r14); // argc.
__ movp(rsi, r15); // argv.
__ Move(rdx, ExternalReference::isolate_address(isolate()));
#endif
#endif // _WIN64
__ call(rbx);
// Result is in rax - do not destroy this register!
#ifdef _WIN64
// If return value is on the stack, pop it to registers.
if (result_size_ > 1) {
DCHECK_EQ(2, result_size_);
if (result_size() > 1) {
DCHECK_EQ(2, result_size());
// Read result values stored on stack. Result is stored
// above the four argument mirror slots and the two
// Arguments object slots.
__ movq(rax, Operand(rsp, 6 * kRegisterSize));
__ movq(rdx, Operand(rsp, 7 * kRegisterSize));
}
#endif
#endif // _WIN64
// Runtime functions should not return 'the hole'. Allowing it to escape may
// lead to crashes in the IC code later.
......@@ -2530,7 +2530,7 @@ void CEntryStub::Generate(MacroAssembler* masm) {
}
// Exit the JavaScript to C++ exit frame.
__ LeaveExitFrame(save_doubles_);
__ LeaveExitFrame(save_doubles());
__ ret(0);
// Handling of exception.
......
......@@ -27,7 +27,7 @@ class StoreBufferOverflowStub: public PlatformCodeStub {
SaveFPRegsMode save_doubles_;
Major MajorKey() const { return StoreBufferOverflow; }
int MinorKey() const { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; }
uint32_t MinorKey() const { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; }
};
......@@ -67,7 +67,7 @@ class SubStringStub: public PlatformCodeStub {
private:
Major MajorKey() const { return SubString; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
void Generate(MacroAssembler* masm);
};
......@@ -96,7 +96,7 @@ class StringCompareStub: public PlatformCodeStub {
private:
virtual Major MajorKey() const { return StringCompare; }
virtual int MinorKey() const { return 0; }
virtual uint32_t MinorKey() const { return 0; }
virtual void Generate(MacroAssembler* masm);
static void GenerateAsciiCharsCompareLoop(
......@@ -158,7 +158,7 @@ class NameDictionaryLookupStub: public PlatformCodeStub {
Major MajorKey() const { return NameDictionaryLookup; }
int MinorKey() const {
uint32_t MinorKey() const {
return DictionaryBits::encode(dictionary_.code()) |
ResultBits::encode(result_.code()) |
IndexBits::encode(index_.code()) |
......@@ -389,7 +389,7 @@ class RecordWriteStub: public PlatformCodeStub {
Major MajorKey() const { return RecordWrite; }
int MinorKey() const {
uint32_t MinorKey() const {
return ObjectBits::encode(object_.code()) |
ValueBits::encode(value_.code()) |
AddressBits::encode(address_.code()) |
......
......@@ -2240,7 +2240,7 @@ void CEntryStub::Generate(MacroAssembler* masm) {
// edi: number of arguments including receiver (C callee-saved)
// esi: pointer to the first argument (C callee-saved)
// Result returned in eax, or eax+edx if result_size_ is 2.
// Result returned in eax, or eax+edx if result size is 2.
// Check stack alignment.
if (FLAG_debug_code) {
......
......@@ -28,7 +28,7 @@ class StoreBufferOverflowStub: public PlatformCodeStub {
private:
Major MajorKey() const { return StoreBufferOverflow; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
};
......@@ -68,7 +68,7 @@ class SubStringStub: public PlatformCodeStub {
private:
Major MajorKey() const { return SubString; }
int MinorKey() const { return 0; }
uint32_t MinorKey() const { return 0; }
void Generate(MacroAssembler* masm);
};
......@@ -96,7 +96,7 @@ class StringCompareStub: public PlatformCodeStub {
private:
virtual Major MajorKey() const { return StringCompare; }
virtual int MinorKey() const { return 0; }
virtual uint32_t MinorKey() const { return 0; }
virtual void Generate(MacroAssembler* masm);
static void GenerateAsciiCharsCompareLoop(
......@@ -155,7 +155,7 @@ class NameDictionaryLookupStub: public PlatformCodeStub {
Major MajorKey() const { return NameDictionaryLookup; }
int MinorKey() const {
uint32_t MinorKey() const {
return DictionaryBits::encode(dictionary_.code()) |
ResultBits::encode(result_.code()) |
IndexBits::encode(index_.code()) |
......@@ -383,7 +383,7 @@ class RecordWriteStub: public PlatformCodeStub {
Major MajorKey() const { return RecordWrite; }
int MinorKey() const {
uint32_t MinorKey() const {
return ObjectBits::encode(object_.code()) |
ValueBits::encode(value_.code()) |
AddressBits::encode(address_.code()) |
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment