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

Issue 1736323002: MIPS: [runtime] Unify and simplify how frames are marked. (Closed)

Created:
4 years, 10 months ago by balazs.kilvady
Modified:
4 years, 9 months ago
CC:
v8-reviews_googlegroups.com, Yang
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

MIPS: [runtime] Unify and simplify how frames are marked. Port for https://codereview.chromium.org/1696043002/ Original commit message: Before this CL, various code stubs used different techniques for marking their frames to enable stack-crawling and other access to data in the frame. All of them were based on a abuse of the "standard" frame representation, e.g. storing the a context pointer immediately below the frame's fp, and a function pointer after that. Although functional, this approach tends to make stubs and builtins do an awkward, unnecessary dance to appear like standard frames, even if they have nothing to do with JavaScript execution. This CL attempts to improve this by: * Ensuring that there are only two fundamentally different types of frames, a "standard" frame and a "typed" frame. Standard frames, as before, contain both a context and function pointer. Typed frames contain only a minimum of a smi marker in the position immediately below the fp where the context is in standard frames. * Only interpreted, full codegen, and optimized Crankshaft and TurboFan JavaScript frames use the "standard" format. All other frames use the type frame format with an explicit marker. * Typed frames can contain one or more values below the type marker. There is new magic macro machinery in frames.h that simplifies defining the offsets of these fields in typed frames. * A new flag in the CallDescriptor enables specifying whether a frame is a standard frame or a typed frame. Secondary register location spilling is now only enabled for standard frames. * A zillion places in the code have been updated to deal with the fact that most code stubs and internal frames use the typed frame format. This includes changes in the deoptimizer, debugger, and liveedit. * StandardFrameConstants::kMarkerOffset is deprecated, (CommonFrameConstants::kContextOrFrameTypeOffset and StandardFrameConstants::kFrameOffset are now used in its stead). LOG=N BUG=

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+265 lines, -182 lines) Patch
M src/compiler/mips/code-generator-mips.cc View 1 chunk +6 lines, -7 lines 0 comments Download
M src/compiler/mips64/code-generator-mips64.cc View 1 chunk +6 lines, -7 lines 0 comments Download
M src/crankshaft/mips/lithium-codegen-mips.cc View 4 chunks +6 lines, -9 lines 0 comments Download
M src/crankshaft/mips64/lithium-codegen-mips64.cc View 5 chunks +7 lines, -11 lines 0 comments Download
M src/debug/mips/debug-mips.cc View 1 chunk +3 lines, -2 lines 0 comments Download
M src/debug/mips64/debug-mips64.cc View 1 chunk +3 lines, -2 lines 0 comments Download
M src/full-codegen/mips/full-codegen-mips.cc View 1 chunk +1 line, -3 lines 0 comments Download
M src/full-codegen/mips64/full-codegen-mips64.cc View 1 chunk +1 line, -3 lines 0 comments Download
M src/ic/mips/handler-compiler-mips.cc View 4 chunks +7 lines, -6 lines 0 comments Download
M src/ic/mips64/handler-compiler-mips64.cc View 4 chunks +7 lines, -6 lines 0 comments Download
M src/mips/builtins-mips.cc View 9 chunks +11 lines, -13 lines 0 comments Download
M src/mips/code-stubs-mips.cc View 5 chunks +6 lines, -6 lines 0 comments Download
M src/mips/codegen-mips.cc View 1 chunk +1 line, -3 lines 0 comments Download
M src/mips/deoptimizer-mips.cc View 1 chunk +7 lines, -2 lines 0 comments Download
M src/mips/frames-mips.h View 2 chunks +5 lines, -7 lines 0 comments Download
M src/mips/macro-assembler-mips.h View 1 chunk +8 lines, -0 lines 0 comments Download
M src/mips/macro-assembler-mips.cc View 5 chunks +70 lines, -31 lines 0 comments Download
M src/mips64/builtins-mips64.cc View 9 chunks +11 lines, -12 lines 0 comments Download
M src/mips64/code-stubs-mips64.cc View 5 chunks +6 lines, -6 lines 0 comments Download
M src/mips64/codegen-mips64.cc View 1 chunk +1 line, -3 lines 0 comments Download
M src/mips64/deoptimizer-mips64.cc View 1 chunk +7 lines, -2 lines 0 comments Download
M src/mips64/frames-mips64.h View 2 chunks +5 lines, -7 lines 0 comments Download
M src/mips64/macro-assembler-mips64.h View 1 chunk +8 lines, -0 lines 0 comments Download
M src/mips64/macro-assembler-mips64.cc View 6 chunks +72 lines, -34 lines 0 comments Download

Messages

Total messages: 3 (2 generated)
danno
4 years, 9 months ago (2016-03-01 10:08:42 UTC) #3
thanks for the patch! I'll integrate it into the other bigger patch with the
other platform ports

Powered by Google App Engine
This is Rietveld 408576698