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

Side by Side Diff: src/frames.cc

Issue 2247353005: [builtins] support exception handling in TFJ builtins (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Move impl to CodeAssembler, refactor api a bit Created 4 years, 4 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
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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/frames.h" 5 #include "src/frames.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <sstream> 8 #include <sstream>
9 9
10 #include "src/ast/ast.h" 10 #include "src/ast/ast.h"
(...skipping 861 matching lines...) Expand 10 before | Expand all | Expand 10 after
872 872
873 void StubFrame::Iterate(ObjectVisitor* v) const { 873 void StubFrame::Iterate(ObjectVisitor* v) const {
874 IterateCompiledFrame(v); 874 IterateCompiledFrame(v);
875 } 875 }
876 876
877 877
878 Code* StubFrame::unchecked_code() const { 878 Code* StubFrame::unchecked_code() const {
879 return static_cast<Code*>(isolate()->FindCodeObject(pc())); 879 return static_cast<Code*>(isolate()->FindCodeObject(pc()));
880 } 880 }
881 881
882 int StubFrame::LookupExceptionHandlerInTable(
caitp 2016/08/19 14:30:09 seems to be unnecessary, only seemed to come up du
883 int* stack_slots, HandlerTable::CatchPrediction* prediction) {
884 DCHECK_NULL(prediction);
885 Code* code = LookupCode();
886
887 // Only support catch handlers in TFJ builtins.
888 if (!code->is_turbofanned()) return -1;
889 if (code->kind() != Code::BUILTIN) return -1;
890
891 HandlerTable* table = HandlerTable::cast(code->handler_table());
892 int pc_offset = static_cast<int>(pc() - code->entry());
893 if (stack_slots) *stack_slots = code->stack_slots();
894 return table->LookupReturn(pc_offset);
895 }
882 896
883 Address StubFrame::GetCallerStackPointer() const { 897 Address StubFrame::GetCallerStackPointer() const {
884 return fp() + ExitFrameConstants::kCallerSPOffset; 898 return fp() + ExitFrameConstants::kCallerSPOffset;
885 } 899 }
886 900
887 901
888 int StubFrame::GetNumberOfIncomingArguments() const { 902 int StubFrame::GetNumberOfIncomingArguments() const {
889 return 0; 903 return 0;
890 } 904 }
891 905
(...skipping 1018 matching lines...) Expand 10 before | Expand all | Expand 10 after
1910 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) { 1924 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) {
1911 StackFrame* frame = AllocateFrameCopy(it.frame(), zone); 1925 StackFrame* frame = AllocateFrameCopy(it.frame(), zone);
1912 list.Add(frame, zone); 1926 list.Add(frame, zone);
1913 } 1927 }
1914 return list.ToVector(); 1928 return list.ToVector();
1915 } 1929 }
1916 1930
1917 1931
1918 } // namespace internal 1932 } // namespace internal
1919 } // namespace v8 1933 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698