X87: Remove kind field from StackHandler.
port15f8213809
(r27263) original commit message: This relands commit96f79568a9
. This makes the Isolate::Throw logic not depend on a prediction of whether an exception is caught or uncaught. Such a prediction is inherently undecidable because a finally block can decide between consuming or re-throwing an exception depending on arbitray control flow. There still is a conservative prediction mechanism in place that components like the debugger or tracing can use for reporting. With this change we can get rid of the StackHandler::kind field, a pre-requisite to do table-based lookups of exception handlers. BUG= Review URL: https://codereview.chromium.org/1027413002 Cr-Commit-Position: refs/heads/master@{#27385}
This commit is contained in:
parent
aca7895353
commit
5703794412
@ -1002,11 +1002,9 @@ void MacroAssembler::PushTryHandler(StackHandler::Kind kind,
|
||||
} else {
|
||||
push(esi);
|
||||
}
|
||||
// Push the state.
|
||||
unsigned state =
|
||||
StackHandler::IndexField::encode(handler_index) |
|
||||
StackHandler::KindField::encode(kind);
|
||||
push(Immediate(state));
|
||||
|
||||
// Push the index.
|
||||
push(Immediate(handler_index));
|
||||
|
||||
// Link the current handler as the next handler.
|
||||
ExternalReference handler_address(Isolate::kHandlerAddress, isolate());
|
||||
|
Loading…
Reference in New Issue
Block a user