- 06 May, 2016 1 commit
-
-
akos.palfi authored
MIPS: Add new relocation type WASM_MEMORY_SIZE_REFERENCE, use relocatable pointers to update wasm memory size references in generated code. Port 117a56b7 BUG= Review-Url: https://codereview.chromium.org/1959653002 Cr-Commit-Position: refs/heads/master@{#36081}
-
- 05 May, 2016 1 commit
-
-
akos.palfi authored
Port 81cb8411 BUG= Review-Url: https://codereview.chromium.org/1957463002 Cr-Commit-Position: refs/heads/master@{#36053}
-
- 04 May, 2016 1 commit
-
-
balazs.kilvady authored
Port b994ad45 Original commit message: Also factor out test cases from test-run-machops.cc into test-run-load-store.cc TEST=cctest/test-run-load-store/RunLoadStoreZeroExtend64, cctest/test-run-load-store/RunOobCheckedLoadT_pseudo7, cctest/test-run-load-store/RunOobCheckedLoad_pseudo7 BUG=chromium:599717 LOG=Y Review-Url: https://codereview.chromium.org/1907363002 Cr-Commit-Position: refs/heads/master@{#36017}
-
- 03 May, 2016 2 commits
-
-
binji authored
BUG=v8:4614 R=bmeurer@chromium.org,jarin@chromium.org LOG=n Review-Url: https://codereview.chromium.org/1938213002 Cr-Commit-Position: refs/heads/master@{#35993}
-
bmeurer authored
Use the ShiftLeftStub, ShiftRightStub and ShiftRightLogicalStub in JSGenericLowering instead of the old-style patching BinaryOpIC. Also remove the machinery to support patching ICs in TurboFan completely, as this was the last user of code patching in TurboFan! R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/1942153002 Cr-Commit-Position: refs/heads/master@{#35959}
-
- 28 Apr, 2016 1 commit
-
-
jarin authored
BUG=chromium:607115 LOG=n Review-Url: https://codereview.chromium.org/1928903002 Cr-Commit-Position: refs/heads/master@{#35855}
-
- 24 Apr, 2016 1 commit
-
-
bmeurer authored
This allows us to get rid of the "push TruncateFloat64ToInt32 into Phi" trick that was used in the MachineOperatorReducer to combine the ChangeTaggedToFloat64 and TruncateFloat64ToInt32 operations. Instead of doing that later, we can just introduce the proper operator during the representation selection directly. Also separate the TruncateFloat64ToInt32 machine operator, which had two different meanings depending on a flag (either JavaScript truncation or C++ style round to zero). Now there's a TruncateFloat64ToWord32 which represents the JavaScript truncation (implemented via TruncateDoubleToI macro + code stub) and the RoundFloat64ToInt32, which implements the C++ round towards zero operation (in the same style as the other WebAssembly driven Round* machine operators). R=jarin@chromium.org Review URL: https://codereview.chromium.org/1919513002 Cr-Commit-Position: refs/heads/master@{#35743}
-
- 20 Apr, 2016 1 commit
-
-
mtrofin authored
Before frame elision, we finalized the frame shape when assembling the prologue, which is also when we prepared the frame (saving sp, etc). The frame finalization only needs to happen once, and happens to be actually a set of idempotent operations. With frame elision, the logic for frame finalization was happening every time we constructed the frame. Albeit idempotent operations, the code would become hard to maintain. This change separates frame shape finalization from frame construction. When constructing the CodeGenerator, we finalize the frame. Subsequent access is to a const Frame*. Also renamed AssemblePrologue to AssembleConstructFrame, as suggested in the frame elision CR. Separating frame setup gave the opportunity to do away with architecture-independent frame aligning (which is something just arm64 cares about), and also with stack pointer setup (also arm64). Both of these happen now at frame finalization on arm64. BUG= Review URL: https://codereview.chromium.org/1843143002 Cr-Commit-Position: refs/heads/master@{#35642}
-
- 19 Apr, 2016 1 commit
-
-
akos.palfi authored
Port d412cfa2 BUG= Review URL: https://codereview.chromium.org/1899783003 Cr-Commit-Position: refs/heads/master@{#35613}
-
- 18 Apr, 2016 1 commit
-
-
binji authored
Reland of (https://codereview.chromium.org/1891033002) This is a much cleaner solution, which won't require nearly as much architecture-specific code. Thanks bmeurer@! BUG=v8:4614 LOG=y TBR=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1902433003 Cr-Commit-Position: refs/heads/master@{#35596}
-
- 16 Apr, 2016 2 commits
-
-
machenbach authored
Revert of [Atomics] Remove Atomics code stubs; use TF ops (patchset #6 id:100001 of https://codereview.chromium.org/1891033002/ ) Reason for revert: [Sheriff] Breaks https://build.chromium.org/p/client.v8/builders/V8%20Linux%20ASAN%20mipsel%20-%20debug%20builder/builds/6121 Original issue's description: > [Atomics] Remove Atomics code stubs; use TF ops > > This is a much cleaner solution, which won't require nearly as much > architecture-specific code. Thanks bmeurer@! > > BUG=v8:4614 > LOG=y > R=bmeurer@chromium.org,jarin@chromium.org > > Committed: https://crrev.com/6ff5881b1def45b35384572f61327e42563a89c3 > Cr-Commit-Position: refs/heads/master@{#35547} TBR=bmeurer@chromium.org,jarin@chromium.org,rodolph.perfetta@gmail.com,binji@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4614 Review URL: https://codereview.chromium.org/1895643002 Cr-Commit-Position: refs/heads/master@{#35548}
-
binji authored
This is a much cleaner solution, which won't require nearly as much architecture-specific code. Thanks bmeurer@! BUG=v8:4614 LOG=y R=bmeurer@chromium.org,jarin@chromium.org Review URL: https://codereview.chromium.org/1891033002 Cr-Commit-Position: refs/heads/master@{#35547}
-
- 14 Apr, 2016 1 commit
-
-
rmcilroy authored
Modifies Ignition to store code entry addresses in the dispatch table rather than code objects. This allows the interpreter to avoid calculating the code entry address from the code object on every dispatch and provides a ~5-7% performance improvement on Octane with Ignition. This change adds ArchOpcode::kArchTailCallAddress to TurboFan to enable tail call dispatch using these code addresses. It also adds a Dispatch linkage creator (distinct from the stub linkage type used previously) to allow targetting a code address target (which will diverge further from the stub linkage type when we remove the context machine register in Ignition). BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1882073002 Cr-Commit-Position: refs/heads/master@{#35480}
-
- 13 Apr, 2016 1 commit
-
-
Ilija.Pavlovic authored
Add relocatable pointers for wasm memory references that need to be updated when wasm GrowMemory is used. Code generator changes to accept relocatable constants as immediates. Port 52148c41 TEST= BUG= Review URL: https://codereview.chromium.org/1886723003 Cr-Commit-Position: refs/heads/master@{#35450}
-
- 06 Apr, 2016 1 commit
-
-
balazs.kilvady authored
BUG= Review URL: https://codereview.chromium.org/1859143002 Cr-Commit-Position: refs/heads/master@{#35309}
-
- 01 Apr, 2016 1 commit
-
-
akos.palfi authored
Port 53d51c52 TEST=mjsunit/es6/array-copywithin, mjsunit/harmony/array-species BUG= Review URL: https://codereview.chromium.org/1847073003 Cr-Commit-Position: refs/heads/master@{#35212}
-
- 31 Mar, 2016 1 commit
-
-
ahaas authored
*) For all tests the input validation was incorrect, i.e. some values were considered invalid although they were valid. The problem was that values which are outside int range can get in range through truncation. *) Removed an assertion in the x64 code generation of TruncateFloat64ToUint32 which trapped on negative inputs. *) Introduced a new TF operator TruncateFloat32ToUint32 which does the same as ChangeFloat32ToUint32 but does not trap on negative inputs. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1843983002 Cr-Commit-Position: refs/heads/master@{#35176}
-
- 30 Mar, 2016 1 commit
-
-
mtrofin authored
Removed Frame::needs_frame and the function-wide logic using it in favor of FrameAccessState::has_frame, which can be set on a more granular level, and driving it block by block. BUG= v8:4533 LOG=N Review URL: https://codereview.chromium.org/1775323002 Cr-Commit-Position: refs/heads/master@{#35139}
-
- 13 Mar, 2016 1 commit
-
-
jarin authored
BUG=chromium:582702 LOG=N Review URL: https://codereview.chromium.org/1781393002 Cr-Commit-Position: refs/heads/master@{#34736}
-
- 09 Mar, 2016 1 commit
-
-
jarin authored
After fixing the memory barrier for maps (https://codereview.chromium.org/1714513003), we are using a temp register for the map case. The temp register should not be aliased with the stored value (otherwise we perform the mem barrier check with a wrong value). This CL makes sure it is not aliased. BUG=chromium:590074 LOG=n Review URL: https://codereview.chromium.org/1775083002 Cr-Commit-Position: refs/heads/master@{#34607}
-
- 08 Mar, 2016 2 commits
-
-
danno authored
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 Review URL: https://codereview.chromium.org/1696043002 Cr-Commit-Position: refs/heads/master@{#34571}
-
ishell authored
In case when F tail calls G we should also remove the potential arguments adaptor frame for F. This CL introduces two new machine instructions ArchTailCallCodeObjectFromJSFunction and ArchTailCallJSFunctionFromJSFunction which (unlike existing ArchTailCallCodeObject and ArchTailCallJSFunction) also drop arguments adaptor frame if it exists right before jumping to the target function. BUG=v8:4698 LOG=N Review URL: https://codereview.chromium.org/1702423002 Cr-Commit-Position: refs/heads/master@{#34566}
-
- 03 Mar, 2016 1 commit
-
-
epertoso authored
Changes MacroAssembler::GenerateSwitchTable to make sure that 'ra' is properly restored. BUG= Review URL: https://codereview.chromium.org/1761863002 Cr-Commit-Position: refs/heads/master@{#34460}
-
- 29 Feb, 2016 1 commit
-
-
bmeurer authored
Rename the existing (patching) ToBooleanStub to ToBooleanICStub to match our naming convention, and add a new TurboFan-powered ToBooleanStub, which just does the ToBoolean conversion without any runtime call or code patching, so we can use it for Ignition (and TurboFan). Drive-by-fix: Add an Oddball::to_boolean field similar to the ones we already have for to_string and to_number, so we don't need to actually dispatch on the concrete Oddball at all. R=epertoso@chromium.org, rmcilroy@chromium.org, yangguo@chromium.org Review URL: https://codereview.chromium.org/1744163002 Cr-Commit-Position: refs/heads/master@{#34361}
-
- 25 Feb, 2016 1 commit
-
-
alan.li authored
operators.' Port c129aa4d Original commit message: These macro operators represent a conditional eager deoptimization exit without explicit branching, which greatly reduces overhead of both scheduling and register allocation, and thereby greatly reduces overall compilation time, esp. when there are a lot of eager deoptimization exits. BUG= TEST=mjsunit/asm/embenchen/fasta Review URL: https://codereview.chromium.org/1736653003 Cr-Commit-Position: refs/heads/master@{#34301}
-
- 24 Feb, 2016 1 commit
-
-
bmeurer authored
These macro operators represent a conditional eager deoptimization exit without explicit branching, which greatly reduces overhead of both scheduling and register allocation, and thereby greatly reduces overall compilation time, esp. when there are a lot of eager deoptimization exits. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1721103003 Cr-Commit-Position: refs/heads/master@{#34239}
-
- 22 Feb, 2016 1 commit
-
-
mstarzinger authored
This picks the record-write stub depending on the correct remembered set action parameter. For values known to be maps we can guarantee that they never reside in new-space, hence store buffer recording can be skipped. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1716163003 Cr-Commit-Position: refs/heads/master@{#34191}
-
- 19 Feb, 2016 1 commit
-
-
ulan authored
We cannot omit flag check with kPointersToHereAreInterestingMask for maps because incremental marker dynamically sets and clears the flag. BUG=chromium:587004 LOG=NO Review URL: https://codereview.chromium.org/1714513003 Cr-Commit-Position: refs/heads/master@{#34165}
-
- 18 Feb, 2016 2 commits
-
-
akos.palfi authored
Port 187b3f28 BUG= Review URL: https://codereview.chromium.org/1709793002 Cr-Commit-Position: refs/heads/master@{#34130}
-
akos.palfi authored
Port 2166bd8c BUG= Review URL: https://codereview.chromium.org/1708853002 Cr-Commit-Position: refs/heads/master@{#34112}
-
- 17 Feb, 2016 2 commits
-
-
bbudge authored
Adds kSimd128 to MachineRepresentation. Adds a Simd128Register concept that's platform independent. Adds UntaggedSimd128 to types.h. LOG=N BUG=v8:4124 Review URL: https://codereview.chromium.org/1693963004 Cr-Commit-Position: refs/heads/master@{#34089}
-
balazs.kilvady authored
Port fd8fd05c Original commit message: This functionality is useful for stubs that need to walk the stack. The new machine operator, LoadParentFramePointer doesn't force the currently compiling method to have a frame in contrast to LoadFramePointer. Instead, it adapts accordingly when frame elision is possible, making efficient stack walks possible without incurring a performance penalty for small stubs that can benefit from frame elision. BUG= Review URL: https://codereview.chromium.org/1701933003 Cr-Commit-Position: refs/heads/master@{#34066}
-
- 16 Feb, 2016 4 commits
-
-
rodolph.perfetta authored
Let me know if this is not the right approach Review URL: https://codereview.chromium.org/1698483002 Cr-Commit-Position: refs/heads/master@{#34028}
-
mstarzinger authored
The LazyBailout operator (modelled as a nop-call) was introduced for placing a deoptimization point into exception handlers. Now that we are no longer re-entering lazy deoptimized code, the support can be removed. R=jarin@chromium.org BUG=v8:4195 LOG=n Review URL: https://codereview.chromium.org/1697503002 Cr-Commit-Position: refs/heads/master@{#34020}
-
rmcilroy authored
Fixes a bug in Ignition on Arm64 where lr gets trashed in StaContextSlot which causes the stack walker to get confused and crash. BUG=v8:4680 LOG=N Review URL: https://codereview.chromium.org/1694263002 Cr-Commit-Position: refs/heads/master@{#34016}
-
danno authored
This functionality is useful for stubs that need to walk the stack. The new machine operator, LoadParentFramePointer dosn't force the currently compiling method to have a frame in contrast to LoadFramePointer. Instead, it adapts accordingly when frame elision is possible, making efficient stack walks possible without incurring a performance penalty for small stubs that can benefit from frame elision. R=bmeurer@chromium.org LOG=N Review URL: https://codereview.chromium.org/1695313002 Cr-Commit-Position: refs/heads/master@{#34014}
-
- 15 Feb, 2016 1 commit
-
-
bmeurer authored
Initially we were unable to address certain stack slots in the callee part of the frame, including the function marker, therefore we had to hack a reload of the function register into the OSR prologue. Now that we are able to address all stack slots, we no longer need this hack. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1666073002 Cr-Commit-Position: refs/heads/master@{#33974}
-
- 06 Feb, 2016 2 commits
-
-
jing.bao authored
BUG= Review URL: https://codereview.chromium.org/1627263002 Cr-Commit-Position: refs/heads/master@{#33797}
-
jing.bao authored
BUG= Review URL: https://codereview.chromium.org/1628133002 Cr-Commit-Position: refs/heads/master@{#33796}
-
- 03 Feb, 2016 1 commit
-
-
balazs.kilvady authored
BUG= Review URL: https://codereview.chromium.org/1628453002 Cr-Commit-Position: refs/heads/master@{#33703}
-