- 20 Nov, 2015 1 commit
-
-
oth authored
Adds support for the New, CallRuntime and CallJSRuntime bytecodes in BytecodeGraphBuilder. Also adds BuildLoadObjectField, BuildLoadGlobalObject and BuildLoadNativeContextField helpers. Landed on behalf of rmcilroy. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1456483002 Cr-Commit-Position: refs/heads/master@{#32136}
-
- 17 Nov, 2015 1 commit
-
-
oth authored
Adds support for visiting the Call bytecode to the bytecode graph builder. This change also adds the call type feedback slot to the Call bytecode. This is not currently used by the interpreter, but is used by the graph builder. Also adds a CallWide varient of the Call bytecode, and adds the kCount16 operand type. Landed on behalf of rmcilroy. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1456453002 Cr-Commit-Position: refs/heads/master@{#32033}
-
- 04 Nov, 2015 1 commit
-
-
rmcilroy authored
Adds support for calling JS runtime functions. Also changes the bytecode array builder to allow calling functions with an invalid argument register if the call takes no arguments. Adds the bytecode CallJSRuntime. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1410003003 Cr-Commit-Position: refs/heads/master@{#31774}
-
- 03 Nov, 2015 1 commit
-
-
rmcilroy authored
Corrects LdaGlobal to deal with TypeofMode::INSIDE_TYPEOF so that it doesn't throw a reference error on undefined globals. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1422443006 Cr-Commit-Position: refs/heads/master@{#31757}
-
- 30 Oct, 2015 1 commit
-
-
rmcilroy authored
Adds wide bytecode varients, which take 16-bit feedback slot and constant pool entry indexes for the following bytecodes: - LoadICSloppyWide - LoadICStrictWide - KeyedLoadICSloppyWide - KeyedLoadICStrictWide - StoreICSloppyWide - StoreICStrictWide - KeyedStoreICSloppyWide - KeyedStoreICStrictWide - LdaGlobalSloppyWide - LdaGlobalStrictWide - StaGlobalSloppyWide - StaGlobalStrictWide - LdaConstantWide BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1413863010 Cr-Commit-Position: refs/heads/master@{#31683}
-
- 29 Oct, 2015 1 commit
-
-
oth authored
For..in introduces 3 new bytecodes ForInPrepare, ForInNext, and ForInDone to start a for..in loop, get the next element, and check if the loop is done. For..in builds upon new LoopBuilder constructs for conditionally breaking and continuing during iteration: BreakIf{Null|Undefined} and ContinueIf{Null|Undefined}. New conditional jump bytecodes support this succinctly: JumpIfNull and JumpIfUndefined. Add missing check to BytecodeLabel that could allow multiple forward referencess to the same label which is not supported. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1422033002 Cr-Commit-Position: refs/heads/master@{#31651}
-
- 28 Oct, 2015 1 commit
-
-
mythria authored
Adds support for delete operator, it's implementation and tests. Adds tests for the following unary operators -BitwiseNot -Add -Sub BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1410953003 Cr-Commit-Position: refs/heads/master@{#31620}
-
- 26 Oct, 2015 1 commit
-
-
rmcilroy authored
Adds support for loading from and storing to outer context variables. Also adds support for declaring functions on contexts and locals. Finally, fixes a couple of issues with StaContextSlot where we weren't emitting the write barrier and therefore would crash in the GC. Also added code so that --print-bytecode will output the function name before the bytecodes, and replaces MachineType with StoreRepresentation in RawMachineAssembler::Store and updates tests. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1425633002 Cr-Commit-Position: refs/heads/master@{#31584}
-
- 22 Oct, 2015 4 commits
-
-
rmcilroy authored
Fills out some more of the function prologue support in the interpreter. Deals with creation of arguments objects and throwing IllegalRedeclarations if necessary. Also adds (untested) support for this.function and new.target variable assignment. Also fixes a bug in Frames::is_java_script() to deal with interpreter frames correctly. Cleans up comments in builtins InterpreterEntryTrampoline about missing prologue support. Adds the following bytecodes: - CreateArgumentsSloppy - CreateArgumentsStrict BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1412953007 Cr-Commit-Position: refs/heads/master@{#31486}
-
rmcilroy authored
Adds support for count operations to the interpreter. Deals with count operations on locals, globals, context allocated variables and named and keyed properties. Adds the following bytecodes: ToNumber Inc Dec BUG=v8:4280 LOG=N TBR=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1416623003 Cr-Commit-Position: refs/heads/master@{#31484}
-
rmcilroy authored
Unifies the global and unallocated variable type accesses given that --global_var_shortcuts is going away. Lda/StaGlobal is modified to use Load/StoreICs on the global object. The named LoadIC and StoreIC bytecodes are also modified so that they take a constant pool entry index for the name rather than a register, avoiding unecessary LdaConstant bytecodes to be emitted. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1419003002 Cr-Commit-Position: refs/heads/master@{#31482}
-
ishell authored
Remove support for "loads and stores to global vars through property cell shortcuts installed into parent script context" from all compilers. The plan is to implement the same idea using vector IC machinery. Stubs implementations and scopes modifications are left untouched for now. Review URL: https://codereview.chromium.org/1419823003 Cr-Commit-Position: refs/heads/master@{#31458}
-
- 19 Oct, 2015 1 commit
-
-
rmcilroy authored
Adds support for throwing exceptions. Adds the bytecode Throw. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1410863002 Cr-Commit-Position: refs/heads/master@{#31366}
-
- 16 Oct, 2015 3 commits
-
-
rmcilroy authored
Adds support for creating RegExp literals and adds some tests. Adds the CreateRegExpLiteral bytecode. BUG=v8:4280 LOG=N TBR=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1410853002 Cr-Commit-Position: refs/heads/master@{#31345}
-
rmcilroy authored
Adds support for local context loads and stores. Also adds support for creation of new block contexts (e.g., for let variables) and initializing const / let variables with the hole appropriately. Also adds some checks to ensure BytecodeArrayBuilder::context_count is set appropriately and fixes tests to do so. Adds the bytecode StaContextSlot. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1403943004 Cr-Commit-Position: refs/heads/master@{#31343}
-
rmcilroy authored
Adds the bytecode StaGlobalStrict and replaces StaGlobal with StaGlobalSloppy. BUG=v8:4280 LOG=N TBR=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1406183002 Cr-Commit-Position: refs/heads/master@{#31339}
-
- 15 Oct, 2015 4 commits
-
-
oth authored
This change add a new bytecode for operator new and implements it using the Construct() builtin. BUG=v8:4280 LOG=N Committed: https://crrev.com/8e4f9963d53913eab7fbd2f61a5733d8dc2169e7 Cr-Commit-Position: refs/heads/master@{#31293} Review URL: https://codereview.chromium.org/1402943002 Cr-Commit-Position: refs/heads/master@{#31312}
-
machenbach authored
Revert of [Interpreter] Support for operator new. (patchset #17 id:290001 of https://codereview.chromium.org/1402943002/ ) Reason for revert: [Sheriff] Breaks arm64 debug: http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20debug/builds/4595 Original issue's description: > [Interpreter] Support for operator new. > > This change add a new bytecode for operator new and implements it using > the Construct() builtin. > > BUG=v8:4280 > LOG=N > > Committed: https://crrev.com/8e4f9963d53913eab7fbd2f61a5733d8dc2169e7 > Cr-Commit-Position: refs/heads/master@{#31293} TBR=rmcilroy@chromium.org,bmeurer@chromium.org,oth@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4280 Review URL: https://codereview.chromium.org/1402153004 Cr-Commit-Position: refs/heads/master@{#31298}
-
oth authored
This change add a new bytecode for operator new and implements it using the Construct() builtin. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1402943002 Cr-Commit-Position: refs/heads/master@{#31293}
-
mythria authored
Adds support for following operators -Logical and -Logical or -Comma Adds the above bytecodes, support to BytecodeGenerator and BytecodeArrayBuilder to enable it's use, it's implementation and tests. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1399773002 Cr-Commit-Position: refs/heads/master@{#31281}
-
- 14 Oct, 2015 2 commits
-
-
rmcilroy authored
Replaces the use of KeyedStoreICGeneric with a vector based KeyedStoreIC for array literal computed stores now that there is a feedback vector slot for these expressions. Removes KeyedStoreICGeneric bytecode since this is no longer necessary. BUG=v8:4280 LOG=N TBR=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1400353002 Cr-Commit-Position: refs/heads/master@{#31262}
-
rmcilroy authored
Adds Object literal support to the interpreter. Adds the following bytecodes: - ToName - CreateObjectLiteral. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1386313005 Cr-Commit-Position: refs/heads/master@{#31253}
-
- 13 Oct, 2015 3 commits
-
-
rmcilroy authored
Adds array literal support to the interpreter. Currently constructed array elements don't have type feedback slots, so also adds support for generic keyed store operations. Adds the following bytecodes: - CreateArrayLiteral - KeyedStoreICGeneric BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1400753003 Cr-Commit-Position: refs/heads/master@{#31240}
-
rmcilroy authored
Adds support for creation of new local function contexts (or script context for top-level code). As part of this, also adds support for context push/pop operations using a ContextScope object in BytecodeGenerator. Adds the following bytecodes: - PushContext - PopContext Support for inner contexts and loading from / storing to context allocated variables will come in a future CL. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1379793004 Cr-Commit-Position: refs/heads/master@{#31238}
-
rmcilroy authored
Adds function literal support and add support for OTHER_CALLS which can be made when calling a function literal. Adds the CreateClosure bytecode. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1396693003 Cr-Commit-Position: refs/heads/master@{#31231}
-
- 12 Oct, 2015 2 commits
-
-
mythria authored
-Bitwise Or -Bitwise Xor -Bitwise And Adds the above bytecodes, support to BytecodeGenerator and BytecodeArrayBuilder to enable it's use, it's implementation and tests. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1386133002 Cr-Commit-Position: refs/heads/master@{#31210}
-
mythria authored
Adds support for following operators -Shift left -Shift right -Shift right logical Adds the above bytecodes, support to BytecodeGenerator and BytecodeArrayBuilder to enable it's use, it's implementation and tests. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1392913002 Cr-Commit-Position: refs/heads/master@{#31205}
-
- 07 Oct, 2015 3 commits
-
-
rmcilroy authored
Implements support for declaring global variables. Also adds support for loading from and storing to both global and unallocated global variables. Adds the following bytecodes: - StoreGlobal - LoadContextSlot BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1378523005 Cr-Commit-Position: refs/heads/master@{#31166}
-
rmcilroy authored
Adds support for compiling top level code to bytecode to be run in the interpreter. Also moves PassesFilter to String:: so that it can be used to filter top level script names as well as functions (used in https://codereview.chromium.org/1379093002/) BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1372293005 Cr-Commit-Position: refs/heads/master@{#31142}
-
rmcilroy authored
Adds support for strict mode load / store ICs and cleans up BinaryOp and CompareOp to only trigger an UNIMPLEMENTED abort if called with STRONG mode (which is the only language mode which has different compare/binary ops. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1385623002 Cr-Commit-Position: refs/heads/master@{#31134}
-
- 06 Oct, 2015 1 commit
-
-
oth authored
Implementations and tests for typeof, void, and logical not. Add missing string type to Object::TypeOf. BUG=v8:4280 LOG=NO Review URL: https://codereview.chromium.org/1390483002 Cr-Commit-Position: refs/heads/master@{#31124}
-
- 02 Oct, 2015 5 commits
-
-
rmcilroy authored
Adds support for calling runtime functions from the interpreter. Adds the CallRuntime bytecode which takes a Runtime::FunctionId of the function to call and the arguments in sequential registers. Adds a InterpreterCEntry builtin to enable the interpreter to enter C++ code based on the functionId. Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall and groups all the interpreter builtins together. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1362383002 Cr-Commit-Position: refs/heads/master@{#31089}
-
rmcilroy authored
Revert of [Interpreter] Add CallRuntime support to the interpreter. (patchset #8 id:220001 of https://codereview.chromium.org/1362383002/ ) Reason for revert: Now breaking arm32 debug bot (worked locally even with --debug-code, so I'll need to figure out what's different on the bot) Original issue's description: > [Interpreter] Add CallRuntime support to the interpreter. > > Adds support for calling runtime functions from the interpreter. Adds the > CallRuntime bytecode which takes a Runtime::FunctionId of the function to call > and the arguments in sequential registers. Adds a InterpreterCEntry builtin > to enable the interpreter to enter C++ code based on the functionId. > > Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall > and groups all the interpreter builtins together. > > BUG=v8:4280 > LOG=N > TBR=bmeurer@chromium.org,oth@chromium.org,mstarzinger@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4280 Review URL: https://codereview.chromium.org/1379933003 Cr-Commit-Position: refs/heads/master@{#31078}
-
rmcilroy authored
Adds support for calling runtime functions from the interpreter. Adds the CallRuntime bytecode which takes a Runtime::FunctionId of the function to call and the arguments in sequential registers. Adds a InterpreterCEntry builtin to enable the interpreter to enter C++ code based on the functionId. Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall and groups all the interpreter builtins together. BUG=v8:4280 LOG=N Committed: https://crrev.com/40e8424b744f8b6e3e1d93e20f23487419911dfc Cr-Commit-Position: refs/heads/master@{#31064} Review URL: https://codereview.chromium.org/1362383002 Cr-Commit-Position: refs/heads/master@{#31076}
-
rmcilroy authored
Revert of [Interpreter] Add CallRuntime support to the interpreter. (patchset #6 id:180001 of https://codereview.chromium.org/1362383002/ ) Reason for revert: Broke Arm64 bot (CEntry stub is trying to pop arguments off stack when argv_in_reg, so I need to fix this). Original issue's description: > [Interpreter] Add CallRuntime support to the interpreter. > > Adds support for calling runtime functions from the interpreter. Adds the > CallRuntime bytecode which takes a Runtime::FunctionId of the function to call > and the arguments in sequential registers. Adds a InterpreterCEntry builtin > to enable the interpreter to enter C++ code based on the functionId. > > Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall > and groups all the interpreter builtins together. > > BUG=v8:4280 > LOG=N > > Committed: https://crrev.com/40e8424b744f8b6e3e1d93e20f23487419911dfc > Cr-Commit-Position: refs/heads/master@{#31064} TBR=bmeurer@chromium.org,oth@chromium.org,mstarzinger@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4280 Review URL: https://codereview.chromium.org/1387543002 Cr-Commit-Position: refs/heads/master@{#31066}
-
rmcilroy authored
Adds support for calling runtime functions from the interpreter. Adds the CallRuntime bytecode which takes a Runtime::FunctionId of the function to call and the arguments in sequential registers. Adds a InterpreterCEntry builtin to enable the interpreter to enter C++ code based on the functionId. Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall and groups all the interpreter builtins together. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1362383002 Cr-Commit-Position: refs/heads/master@{#31064}
-
- 01 Oct, 2015 1 commit
-
-
rmcilroy authored
Adds support for short operands, starting with kIdx16. Introduces BytecodeTraits to enable compile time determination of various traits for a bytecode, such as size, operands, etc. Reworks BytecodeIterator, BytecodeArrayBuilder and Bytecodes::Decode to support 16 bit operands. Adds support to Interpreter to load 16 bit operands. Also fixes a bug with ToBoolean where it wouldn't get emitted at the start of a block, and added a test. BytecodeTraits template magic inspired by oth@chromium.org. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1370893002 Cr-Commit-Position: refs/heads/master@{#31058}
-
- 28 Sep, 2015 1 commit
-
-
oth authored
The comparison operators and ToBoolean are implemented by calling into the runtime. There are new runtime methods are prefixed with Interpreter to make use case clear. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1369123002 Cr-Commit-Position: refs/heads/master@{#30983}
-
- 24 Sep, 2015 2 commits
-
-
oth authored
+ Add bytecodes for conditional and unconditional jumps. + Add bytecodes for test/compare operations. + Expose jumps in bytecode-array-builder and add BytecodeLabel class for identifying jump targets. + Add support for if..then...else in the bytecode-generator. + Implement jump bytecodes in the interpreter. Test/compare operations dependent on runtime call for comparisons. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1343363002 Cr-Commit-Position: refs/heads/master@{#30918}
-
rmcilroy authored
Adds LdaGlobal bytecode and augments BytecodeGenerator to load globals for global variables and function calls. Modified TestBytecodeGenerator to add the ability to specify that a bytecode operand has an unknown value (used so we don't need to figure out the slot index of a global). Also added a helper which checks equality of BytecodeArray with the expected snipptets. Modified TestInterpreter to allow it to take snippets of JS and have the BytecodeGenerator generate the bytecode rather than having to build a BytecodeArray manually. This is used to enable the global tests. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1361113002 Cr-Commit-Position: refs/heads/master@{#30910}
-