| Index: runtime/vm/flow_graph_compiler_x64.cc
|
| ===================================================================
|
| --- runtime/vm/flow_graph_compiler_x64.cc (revision 5537)
|
| +++ runtime/vm/flow_graph_compiler_x64.cc (working copy)
|
| @@ -589,25 +589,6 @@
|
| }
|
|
|
|
|
| -void FlowGraphCompiler::VisitThrow(ThrowComp* comp) {
|
| - LoadValue(RAX, comp->exception());
|
| - __ pushq(RAX);
|
| - GenerateCallRuntime(comp->node_id(), comp->token_index(), kThrowRuntimeEntry);
|
| - __ int3();
|
| -}
|
| -
|
| -
|
| -void FlowGraphCompiler::VisitReThrow(ReThrowComp* comp) {
|
| - LoadValue(RBX, comp->stack_trace());
|
| - LoadValue(RAX, comp->exception());
|
| - __ pushq(RAX);
|
| - __ pushq(RBX);
|
| - GenerateCallRuntime(
|
| - comp->node_id(), comp->token_index(), kReThrowRuntimeEntry);
|
| - Bailout("ReThrow Untested");
|
| -}
|
| -
|
| -
|
| void FlowGraphCompiler::VisitNativeLoadField(NativeLoadFieldComp* comp) {
|
| __ popq(RAX);
|
| __ movq(RAX, FieldAddress(RAX, comp->offset_in_bytes()));
|
| @@ -861,6 +842,28 @@
|
| }
|
|
|
|
|
| +void FlowGraphCompiler::VisitThrow(ThrowInstr* instr) {
|
| + LoadValue(RAX, instr->exception());
|
| + __ pushq(RAX);
|
| + GenerateCallRuntime(instr->node_id(),
|
| + instr->token_index(),
|
| + kThrowRuntimeEntry);
|
| + __ int3();
|
| +}
|
| +
|
| +
|
| +void FlowGraphCompiler::VisitReThrow(ReThrowInstr* instr) {
|
| + LoadValue(RBX, instr->stack_trace());
|
| + LoadValue(RAX, instr->exception());
|
| + __ pushq(RAX);
|
| + __ pushq(RBX);
|
| + GenerateCallRuntime(
|
| + instr->node_id(), instr->token_index(), kReThrowRuntimeEntry);
|
| + Bailout("ReThrow Untested");
|
| +}
|
| +
|
| +
|
| +
|
| void FlowGraphCompiler::VisitBranch(BranchInstr* instr) {
|
| // Determine if the true branch is fall through (!negated) or the false
|
| // branch is. They cannot both be backwards branches.
|
|
|