Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Side by Side Diff: src/compiler/mips/code-generator-mips.cc

Issue 2685583003: [wasm] Do not use setjmp/longjmp in cctests. (Closed)
Patch Set: Change comments Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/compiler/ia32/code-generator-ia32.cc ('k') | src/compiler/mips64/code-generator-mips64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/code-generator.h" 5 #include "src/compiler/code-generator.h"
6 #include "src/compilation-info.h" 6 #include "src/compilation-info.h"
7 #include "src/compiler/code-generator-impl.h" 7 #include "src/compiler/code-generator-impl.h"
8 #include "src/compiler/gap-resolver.h" 8 #include "src/compiler/gap-resolver.h"
9 #include "src/compiler/node-matchers.h" 9 #include "src/compiler/node-matchers.h"
10 #include "src/compiler/osr.h" 10 #include "src/compiler/osr.h"
(...skipping 1743 matching lines...) Expand 10 before | Expand all | Expand 10 after
1754 i.InputInt32(instr_->InputCount() - 1)); 1754 i.InputInt32(instr_->InputCount() - 1));
1755 bool old_has_frame = __ has_frame(); 1755 bool old_has_frame = __ has_frame();
1756 if (frame_elided_) { 1756 if (frame_elided_) {
1757 __ set_has_frame(true); 1757 __ set_has_frame(true);
1758 __ EnterFrame(StackFrame::WASM_COMPILED); 1758 __ EnterFrame(StackFrame::WASM_COMPILED);
1759 } 1759 }
1760 GenerateCallToTrap(trap_id); 1760 GenerateCallToTrap(trap_id);
1761 if (frame_elided_) { 1761 if (frame_elided_) {
1762 __ set_has_frame(old_has_frame); 1762 __ set_has_frame(old_has_frame);
1763 } 1763 }
1764 if (FLAG_debug_code) {
1765 __ stop(GetBailoutReason(kUnexpectedReturnFromWasmTrap));
1766 }
1767 } 1764 }
1768 1765
1769 private: 1766 private:
1770 void GenerateCallToTrap(Runtime::FunctionId trap_id) { 1767 void GenerateCallToTrap(Runtime::FunctionId trap_id) {
1771 if (trap_id == Runtime::kNumFunctions) { 1768 if (trap_id == Runtime::kNumFunctions) {
1772 // We cannot test calls to the runtime in cctest/test-run-wasm. 1769 // We cannot test calls to the runtime in cctest/test-run-wasm.
1773 // Therefore we emit a call to C here instead of a call to the runtime. 1770 // Therefore we emit a call to C here instead of a call to the runtime.
1774 // We use the context register as the scratch register, because we do 1771 // We use the context register as the scratch register, because we do
1775 // not have a context here. 1772 // not have a context here.
1776 __ PrepareCallCFunction(0, 0, cp); 1773 __ PrepareCallCFunction(0, 0, cp);
1777 __ CallCFunction( 1774 __ CallCFunction(
1778 ExternalReference::wasm_call_trap_callback_for_testing(isolate()), 1775 ExternalReference::wasm_call_trap_callback_for_testing(isolate()),
1779 0); 1776 0);
1777 __ LeaveFrame(StackFrame::WASM_COMPILED);
1778 __ Ret();
1780 } else { 1779 } else {
1781 __ Move(cp, Smi::kZero); 1780 __ Move(cp, Smi::kZero);
1782 gen_->AssembleSourcePosition(instr_); 1781 gen_->AssembleSourcePosition(instr_);
1783 __ CallRuntime(trap_id); 1782 __ CallRuntime(trap_id);
1783 ReferenceMap* reference_map =
1784 new (gen_->zone()) ReferenceMap(gen_->zone());
1785 gen_->RecordSafepoint(reference_map, Safepoint::kSimple, 0,
1786 Safepoint::kNoLazyDeopt);
1787 if (FLAG_debug_code) {
1788 __ stop(GetBailoutReason(kUnexpectedReturnFromWasmTrap));
1789 }
1784 } 1790 }
1785 ReferenceMap* reference_map =
1786 new (gen_->zone()) ReferenceMap(gen_->zone());
1787 gen_->RecordSafepoint(reference_map, Safepoint::kSimple, 0,
1788 Safepoint::kNoLazyDeopt);
1789 } 1791 }
1790 1792
1791 bool frame_elided_; 1793 bool frame_elided_;
1792 Instruction* instr_; 1794 Instruction* instr_;
1793 CodeGenerator* gen_; 1795 CodeGenerator* gen_;
1794 }; 1796 };
1795 bool frame_elided = !frame_access_state()->has_frame(); 1797 bool frame_elided = !frame_access_state()->has_frame();
1796 auto ool = new (zone()) OutOfLineTrap(this, frame_elided, instr); 1798 auto ool = new (zone()) OutOfLineTrap(this, frame_elided, instr);
1797 Label* tlabel = ool->entry(); 1799 Label* tlabel = ool->entry();
1798 AssembleBranchToLabels(this, masm(), instr, condition, tlabel, nullptr, true); 1800 AssembleBranchToLabels(this, masm(), instr, condition, tlabel, nullptr, true);
(...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after
2373 padding_size -= v8::internal::Assembler::kInstrSize; 2375 padding_size -= v8::internal::Assembler::kInstrSize;
2374 } 2376 }
2375 } 2377 }
2376 } 2378 }
2377 2379
2378 #undef __ 2380 #undef __
2379 2381
2380 } // namespace compiler 2382 } // namespace compiler
2381 } // namespace internal 2383 } // namespace internal
2382 } // namespace v8 2384 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/ia32/code-generator-ia32.cc ('k') | src/compiler/mips64/code-generator-mips64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698