v8/test/cctest/interpreter/bytecode_expectations
Jakob Gruber cebfde6769 [interpreter] Move function-entry stack check to start of bytecode array
The function-entry stack check should dominate all other
instructions in a function. Prior to this CL it was possible to create
paths not including a stack check due to SwitchOnGeneratorState: the
generator-creation branch had a stack check, while generator-resume
branches did not.

  0 : af fb 00 01       SwitchOnGeneratorState r0, [0], [1] { 0: @22 }
  4 : 27 fe fa          Mov <closure>, r1
  7 : 27 02 f9          Mov <this>, r2
 10 : 64 0a fa 02       InvokeIntrinsic [_CreateJSGeneratorObject], r1-r2
 14 : 26 fb             Star r0
 16 : a7                StackCheck
 17 : b0 fb fb 01 00    SuspendGenerator r0, r0-r0, [0]
 22 : b1 fb fb 01       ResumeGenerator r0, r0-r0
                        [... no stack check here ...]

This CL moves the stack check to the beginning of the bytecode array,
i.e. before SwitchOnGeneratorState.

Bug: chromium:1020031
Change-Id: I8ba8cba99611ddbe50c76023129d926cc84b1d5e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903440
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64888}
2019-11-11 15:00:09 +00:00
..
ArrayLiterals.golden Extend GetIterator bytecode to perform JSReceiver check on object[Symbol.iterator]() 2019-09-12 08:51:35 +00:00
AssignmentsInBinaryExpression.golden [parser] Add an n-ary node for large binop chains 2017-10-25 11:28:55 +00:00
AsyncGenerators.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
AsyncModules.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
BasicBlockToBoolean.golden [objects] Make feedback vector a first-class object 2017-07-27 13:31:55 +00:00
BasicLoops.golden Reland x3 "[runtime] Remove extension slots from context objects" 2019-10-22 14:26:02 +00:00
BreakableBlocks.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
CallAndSpread.golden Extend GetIterator bytecode to perform JSReceiver check on object[Symbol.iterator]() 2019-09-12 08:51:35 +00:00
CallGlobal.golden [Cleanup][Interpreter] Move feedback slot allocation to bytecode generator 2017-10-19 16:17:14 +00:00
CallLookupSlot.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
CallNew.golden [Cleanup][Interpreter] Move feedback slot allocation to bytecode generator 2017-10-19 16:17:14 +00:00
CallRuntime.golden [cleanup] Drop spread.js for good. 2018-03-12 09:44:11 +00:00
ClassAndSuperClass.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
ClassDeclarations.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
CompareNil.golden Reland "[ignition] Skip binding dead labels" 2019-02-28 14:06:15 +00:00
CompareTypeOf.golden [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
CompoundExpressions.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
Conditional.golden [objects] Make feedback vector a first-class object 2017-07-27 13:31:55 +00:00
ConstVariable.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
ConstVariableContextSlot.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
ContextParameters.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
ContextVariables.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
CountOperators.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
CreateArguments.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
CreateRestParameter.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
DeadCodeRemoval.golden [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
DeclareGlobals.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
Delete.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
DeleteLookupSlotInEval.golden [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
DestructuringAssignment.golden [regexp] Improve String.prototype.matchAll error message 2019-10-24 01:54:58 +00:00
DoDebugger.golden [interpreter] Remove redundant flag from bytecode cctest suite. 2016-10-04 16:30:15 +00:00
Eval.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
ForAwaitOf.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
ForIn.golden [interpreter] add JumpIfUndefinedOrNull 2019-08-08 16:44:35 +00:00
ForOf.golden [regexp] Improve String.prototype.matchAll error message 2019-10-24 01:54:58 +00:00
ForOfLoop.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
FunctionLiterals.golden Allocate feedback cells in an array decoupled from other slots 2019-03-11 11:20:21 +00:00
GenerateTestUndetectable.golden [interpreter] Store CreateObjectLiteral's result into the accumulator. 2018-11-08 10:31:45 +00:00
Generators.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
GlobalCompoundExpressions.golden [interpreter] Merge StaGlobal[Sloppy/Strict] into one bytecode. 2017-12-14 10:03:00 +00:00
GlobalCountOperators.golden [interpreter] Merge StaGlobal[Sloppy/Strict] into one bytecode. 2017-12-14 10:03:00 +00:00
GlobalDelete.golden [ignition] Fix return value of delete on global lexical variables 2017-08-23 16:17:48 +00:00
HeapNumberConstants.golden [ast] Move AstValue implementation into Literal 2017-10-27 20:21:29 +00:00
IfConditions.golden Reland "Optimize in operator" 2019-03-01 09:01:18 +00:00
IIFEWithOneshotOpt.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
IIFEWithoutOneshotOpt.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
IntegerConstants.golden [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
LetVariable.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
LetVariableContextSlot.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
LoadGlobal.golden [Interpreter] Share feedback slots for load / store named properties 2018-05-14 10:21:42 +00:00
LogicalExpressions.golden [objects] Make feedback vector a first-class object 2017-07-27 13:31:55 +00:00
LookupSlot.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
LookupSlotInEval.golden [objects] Make feedback vector a first-class object 2017-07-27 13:31:55 +00:00
Modules.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
NewAndSpread.golden [class] implement static private methods 2019-10-10 15:34:44 +00:00
NewTarget.golden [Interpreter] Remove new.target from fixed frame slot. 2017-08-11 17:04:08 +00:00
ObjectLiterals.golden Allocate feedback cells in an array decoupled from other slots 2019-03-11 11:20:21 +00:00
OuterContextVariables.golden Reland x3 "[runtime] Remove extension slots from context objects" 2019-10-22 14:26:02 +00:00
Parameters.golden [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
PrimitiveExpressions.golden [objects] Make feedback vector a first-class object 2017-07-27 13:31:55 +00:00
PrimitiveReturnStatements.golden [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
PrivateAccessorAccess.golden Reland x3 "[runtime] Remove extension slots from context objects" 2019-10-22 14:26:02 +00:00
PrivateAccessorDeclaration.golden Reland x3 "[runtime] Remove extension slots from context objects" 2019-10-22 14:26:02 +00:00
PrivateClassFields.golden Reland x3 "[runtime] Remove extension slots from context objects" 2019-10-22 14:26:02 +00:00
PrivateMethodAccess.golden Reland x3 "[runtime] Remove extension slots from context objects" 2019-10-22 14:26:02 +00:00
PrivateMethodDeclaration.golden Reland x3 "[runtime] Remove extension slots from context objects" 2019-10-22 14:26:02 +00:00
PropertyCall.golden [Interpreter] Enable sharing of load / store named property feedback 2018-06-05 09:21:59 +00:00
PropertyLoads.golden [Interpreter] Share feedback slots for load / store named properties 2018-05-14 10:21:42 +00:00
PropertyLoadStoreOneShot.golden Reland "[interpreter] Separate bytecodes for one-shot property loads and stores" 2018-09-27 13:56:53 +00:00
PropertyLoadStoreWithoutOneShot.golden [interpreter] Store CreateObjectLiteral's result into the accumulator. 2018-11-08 10:31:45 +00:00
PropertyStores.golden [Interpreter] Enable sharing of load / store named property feedback 2018-06-05 09:21:59 +00:00
PublicClassFields.golden Reland x3 "[runtime] Remove extension slots from context objects" 2019-10-22 14:26:02 +00:00
RegExpLiterals.golden [Cleanup][Interpreter] Move feedback slot allocation to bytecode generator 2017-10-19 16:17:14 +00:00
RemoveRedundantLdar.golden [objects] Make feedback vector a first-class object 2017-07-27 13:31:55 +00:00
StandardForLoop.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
StaticClassFields.golden Reland x3 "[runtime] Remove extension slots from context objects" 2019-10-22 14:26:02 +00:00
StaticPrivateMethodAccess.golden Reland x3 "[runtime] Remove extension slots from context objects" 2019-10-22 14:26:02 +00:00
StaticPrivateMethodDeclaration.golden Reland x3 "[runtime] Remove extension slots from context objects" 2019-10-22 14:26:02 +00:00
StoreGlobal.golden [Interpreter] Share feedback slots for load / store named properties 2018-05-14 10:21:42 +00:00
StringConcat.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
StringConstants.golden [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
SuperCallAndSpread.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
Switch.golden [FeedbackVector] Case statements can share a single vector slot 2017-11-07 11:16:47 +00:00
TemplateLiterals.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
ThisFunction.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
Throw.golden [ignition] Expect 'I' for signed bytecode operands 2017-01-25 17:39:24 +00:00
TopLevelObjectLiterals.golden [interpreter] Move function-entry stack check to start of bytecode array 2019-11-11 15:00:09 +00:00
TryCatch.golden Reland "[ignition] Skip binding dead labels" 2019-02-28 14:06:15 +00:00
TryFinally.golden Remove the catch variable name from the extension field of catch contexts 2018-05-04 10:12:08 +00:00
Typeof.golden [objects] Make feedback vector a first-class object 2017-07-27 13:31:55 +00:00
UnaryOperators.golden [Cleanup][Interpreter] Move feedback slot allocation to bytecode generator 2017-10-19 16:17:14 +00:00
WideRegisters.golden [interpreter] add JumpIfUndefinedOrNull 2019-08-08 16:44:35 +00:00
WithStatement.golden [interpreter] Store CreateObjectLiteral's result into the accumulator. 2018-11-08 10:31:45 +00:00