X87: Remove code object from StackHandler.
port e0aa8ebf93
(r27103).
original commit message:
This reduces the size of the StackHandler by one word. We no longer
need to keep track of the code object, as the stack walk finds it.
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/1022403002
Cr-Commit-Position: refs/heads/master@{#27353}
This commit is contained in:
parent
fd51f615eb
commit
289ee15307
@ -990,12 +990,11 @@ void MacroAssembler::LeaveApiExitFrame(bool restore_context) {
|
||||
void MacroAssembler::PushTryHandler(StackHandler::Kind kind,
|
||||
int handler_index) {
|
||||
// Adjust this code if not the case.
|
||||
STATIC_ASSERT(StackHandlerConstants::kSize == 5 * kPointerSize);
|
||||
STATIC_ASSERT(StackHandlerConstants::kSize == 4 * kPointerSize);
|
||||
STATIC_ASSERT(StackHandlerConstants::kNextOffset == 0);
|
||||
STATIC_ASSERT(StackHandlerConstants::kCodeOffset == 1 * kPointerSize);
|
||||
STATIC_ASSERT(StackHandlerConstants::kStateOffset == 2 * kPointerSize);
|
||||
STATIC_ASSERT(StackHandlerConstants::kContextOffset == 3 * kPointerSize);
|
||||
STATIC_ASSERT(StackHandlerConstants::kFPOffset == 4 * kPointerSize);
|
||||
STATIC_ASSERT(StackHandlerConstants::kStateOffset == 1 * kPointerSize);
|
||||
STATIC_ASSERT(StackHandlerConstants::kContextOffset == 2 * kPointerSize);
|
||||
STATIC_ASSERT(StackHandlerConstants::kFPOffset == 3 * kPointerSize);
|
||||
|
||||
// We will build up the handler from the bottom by pushing on the stack.
|
||||
// First push the frame pointer and context.
|
||||
@ -1009,12 +1008,11 @@ void MacroAssembler::PushTryHandler(StackHandler::Kind kind,
|
||||
push(ebp);
|
||||
push(esi);
|
||||
}
|
||||
// Push the state and the code object.
|
||||
// Push the state.
|
||||
unsigned state =
|
||||
StackHandler::IndexField::encode(handler_index) |
|
||||
StackHandler::KindField::encode(kind);
|
||||
push(Immediate(state));
|
||||
Push(CodeObject());
|
||||
|
||||
// Link the current handler as the next handler.
|
||||
ExternalReference handler_address(Isolate::kHandlerAddress, isolate());
|
||||
|
Loading…
Reference in New Issue
Block a user