- 22 Aug, 2016 1 commit
-
-
ahaas authored
The new operators are implemented similar to the Float64(Max|Min) which already exist. The purpose of the new operators is the implementation of the F32Max and F32Min instructions in WebAssembly. R=titzer@chromium.org, v8-arm-ports@googlegroups.com, v8-mips-ports@googlegroups.com Review-Url: https://codereview.chromium.org/2252863003 Cr-Commit-Position: refs/heads/master@{#38784}
-
- 08 Aug, 2016 1 commit
-
-
epertoso authored
Before this change we would first load an 8/16/32-bit value from memory into a 32-bit register, then zero/sign-extend from that register to a 64-bit one. Now we replace that pattern with a single movsx/movzx. Ported from http://crrev.com/2183923003 R=bmeurer@chromium.org Committed: https://crrev.com/4abecb7a27bd5fa073d0ff5fadb0c2bb248ef9f4 Review-Url: https://codereview.chromium.org/2220483003 Cr-Original-Commit-Position: refs/heads/master@{#38388} Cr-Commit-Position: refs/heads/master@{#38428}
-
- 05 Aug, 2016 2 commits
-
-
machenbach authored
Revert of [x64] Zero/sign-extend loads to 64-bit registers. (patchset #1 id:20001 of https://codereview.chromium.org/2220483003/ ) Reason for revert: Breaks tree: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug/builds/10969 Original issue's description: > [x64] Zero/sign-extend loads to 64-bit registers. > > Before this change we would first load an 8/16/32-bit value from memory into a 32-bit register, then zero/sign-extend from that register to a 64-bit one. Now we replace that pattern with a single movsx/movzx. > > Ported from http://crrev.com/2183923003 > > R=bmeurer@chromium.org > > Committed: https://crrev.com/4abecb7a27bd5fa073d0ff5fadb0c2bb248ef9f4 > Cr-Commit-Position: refs/heads/master@{#38388} TBR=bmeurer@chromium.org,epertoso@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2221473002 Cr-Commit-Position: refs/heads/master@{#38389}
-
epertoso authored
Before this change we would first load an 8/16/32-bit value from memory into a 32-bit register, then zero/sign-extend from that register to a 64-bit one. Now we replace that pattern with a single movsx/movzx. Ported from http://crrev.com/2183923003 R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2220483003 Cr-Commit-Position: refs/heads/master@{#38388}
-
- 03 Aug, 2016 1 commit
-
-
weiliang.lin authored
BUG= Review-Url: https://codereview.chromium.org/2170323002 Cr-Commit-Position: refs/heads/master@{#38307}
-
- 21 Jul, 2016 1 commit
-
-
weiliang.lin authored
BUG= Review-Url: https://codereview.chromium.org/2161513002 Cr-Commit-Position: refs/heads/master@{#37937}
-
- 19 Jul, 2016 1 commit
-
-
weiliang.lin authored
BUG= Review-Url: https://codereview.chromium.org/2158923002 Cr-Commit-Position: refs/heads/master@{#37846}
-
- 18 Jul, 2016 1 commit
-
-
bmeurer authored
So far TurboFan wasn't adding the deoptimization reasons for eager/soft deoptimization exits that can be used by either the DevTools profiler or the --trace-deopt flag. This adds basic support for deopt reasons on Deoptimize, DeoptimizeIf and DeoptimizeUnless nodes and threads through the reasons to the code generation. Also moves the DeoptReason to it's own file (to resolve include cycles) and drops unused reasons. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2161543002 Cr-Commit-Position: refs/heads/master@{#37823}
-
- 11 Jul, 2016 1 commit
-
-
bbudge authored
LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2139513002 Cr-Commit-Position: refs/heads/master@{#37654}
-
- 30 Jun, 2016 1 commit
-
-
bbudge authored
-Defines SIMD128_REGISTERS for all platforms. -Adds Simd128 register information to RegisterConfiguration, and implements aliasing calculations. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2092103004 Cr-Commit-Position: refs/heads/master@{#37437}
-
- 29 Jun, 2016 1 commit
-
-
yangguo authored
R=mstarzinger@chromium.org BUG=v8:5117 Review-Url: https://codereview.chromium.org/2109613004 Cr-Commit-Position: refs/heads/master@{#37397}
-
- 27 Jun, 2016 2 commits
-
-
bbudge authored
Replaces ArchDefault method with Crankshaft and Turbofan getters. Eliminates IsAllocated method on Register, FloatRegister, DoubleRegister. Eliminates ToString method too. Changes call sites to access appropriate arch default RegisterConfiguration. LOG=N BUG= Review-Url: https://codereview.chromium.org/2092413002 Cr-Commit-Position: refs/heads/master@{#37297}
-
bbudge authored
- Add a const bool kSimpleFPAliasing variable for each platform so it's easier for the compiler to eliminate dead code. - Modify RegisterAllocator to use it. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2101473002 Cr-Commit-Position: refs/heads/master@{#37288}
-
- 24 Jun, 2016 1 commit
-
-
balazs.kilvady authored
Port fc59eb8a Original commit message: Moves between operands with different representations shouldn't happen, so don't test them. This makes it easier to modify canonicalization to differentiate between floating point types, which is needed to support floating point register aliasing for ARM and MIPS. This change also expands tests to include explicit FP moves (both register and stack slot). LOG=N BUG=v8:4124 BUG=chromium:622619 Review-Url: https://codereview.chromium.org/2090993002 Cr-Commit-Position: refs/heads/master@{#37241}
-
- 17 Jun, 2016 1 commit
-
-
epertoso authored
Disassembler: added decoding of a few instructions that were previously unsupported, fixed the decoding of pextr. Assembler: pmulld(XMMRegister, Operand) was actually emitting a pmuludq. punpckldq(XMMRegister, XMMRegister) was implemented a second time as punpackldq. BUG= Review-Url: https://codereview.chromium.org/2070863002 Cr-Commit-Position: refs/heads/master@{#37059}
-
- 01 Jun, 2016 1 commit
-
-
bmeurer authored
The idea is to make it easier (cheaper) to call into C/C++ directly with C calling conventions, which require xmm0 to be used to pass and return floating point values in the future. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2023763010 Cr-Commit-Position: refs/heads/master@{#36646}
-
- 19 May, 2016 2 commits
-
-
bradnelson authored
Based on assembler changes from this patch: https://codereview.chromium.org/90643003/ BUG=https://bugs.chromium.org/p/v8/issues/detail?id=4124 R=titzer@chromium.org,bbudge@chromium.org LOG=N Review-Url: https://codereview.chromium.org/1994083003 Cr-Commit-Position: refs/heads/master@{#36383}
-
binji authored
Review-Url: https://codereview.chromium.org/1986113004 Cr-Commit-Position: refs/heads/master@{#36341}
-
- 13 May, 2016 1 commit
-
-
mstarzinger authored
This makes the profiler reconstruct inlined function frames at eager deopt points from the deoptimization data. The main goal of this is to remove the last side-channel where Crankshaft communicates directly to the profiler. This is the last preparatory step towards deprecating the side-channel in question. R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/1973993002 Cr-Commit-Position: refs/heads/master@{#36229}
-
- 11 May, 2016 1 commit
-
-
mstarzinger authored
This passes the inlining_id of deoptimization points via the relocation info instead of via a side-channel to the CPU profiler. This is one step towards deprecating the side-channel in question and avoid the need for performing a lookup of the return address of the deopt point. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/1956693002 Cr-Commit-Position: refs/heads/master@{#36177}
-
- 09 May, 2016 1 commit
-
-
bbudge authored
Changes some platform specific class names and uses typedefs to define FloatRegister, DoubleRegister, etc. This will be needed to do register allocation on ARM/MIPS where registers combine to form larger registers. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/1954953002 Cr-Commit-Position: refs/heads/master@{#36117}
-
- 04 May, 2016 1 commit
-
-
gdeepti authored
Add new relocation type WASM_MEMORY_SIZE_REFERENCE, use relocatable pointers to update wasm memory size references in generated code. - Add new RelocInfo mode WASM_MEMORY_SIZE_REFERENCE in the assembler and add relocation information to immediates in compare instructions. - Use relocatable constants for MemSize/BoundsCheck in the wasm compiler R=titzer@chromium.org, yangguo@chromium.org, bradnelson@chromium.org Review-Url: https://codereview.chromium.org/1921203002 Cr-Commit-Position: refs/heads/master@{#36044}
-
- 03 May, 2016 1 commit
-
-
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}
-
- 17 Mar, 2016 1 commit
-
-
epertoso authored
Currently, if the size of two cmp or test operands is a byte or a word, we sign-extend or zero-extend each of them into a 32-bit register before doing the comparison, even when the conditions for the use of a memory operand are met. This CL makes it possible to load only one of them into a register and address the other as a memory operand. Meanwhile, comparisons between Uint8 values in the string relational comparison stubs are done with Uint32LessThan (previously we were always zero-extending the byte to a 32-bit value, so signed comparison was alright). Found that Assembler::arithmetic_op_8(byte, Register, const Operand&) wasn't taking the Operand's rex_ field into account, so I fixed that too. BUG= Review URL: https://codereview.chromium.org/1780193003 Cr-Commit-Position: refs/heads/master@{#34862}
-
- 16 Mar, 2016 3 commits
-
-
gdeepti authored
- New RelocInfo mode WASM_MEMORY_REFERENCE as a marker for wasm code objects that need to be relocated on a heap change - RelocInfo mode recorded for immediates that use the memory buffer as base - Tests to verify address patching works BUG= Committed: https://crrev.com/cc815b69c17da368107ed77306a5bb161170c834 Cr-Commit-Position: refs/heads/master@{#34831} Review URL: https://codereview.chromium.org/1759873002 Cr-Commit-Position: refs/heads/master@{#34836}
-
machenbach authored
Revert of Assembler changes for enabling GrowHeap in Wasm (patchset #13 id:260001 of https://codereview.chromium.org/1759873002/ ) Reason for revert: Breaks compile: https://build.chromium.org/p/client.v8/builders/V8%20Mac64/builds/7740 Probably had outdated tryjobs Original issue's description: > Assembler changes for enabling GrowHeap in Wasm > - New RelocInfo mode WASM_MEMORY_REFERENCE as a marker for wasm code objects that need to be relocated on a heap change > - RelocInfo mode recorded for immediates that use the memory buffer as base > - Tests to verify address patching works > > BUG= > > Committed: https://crrev.com/cc815b69c17da368107ed77306a5bb161170c834 > Cr-Commit-Position: refs/heads/master@{#34831} TBR=titzer@chromium.org,yangguo@chromium.org,bradnelson@chromium.org,bradnelson@google.com,marija.antic@imgtec.com,gdeepti@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1808823002 Cr-Commit-Position: refs/heads/master@{#34832}
-
gdeepti authored
- New RelocInfo mode WASM_MEMORY_REFERENCE as a marker for wasm code objects that need to be relocated on a heap change - RelocInfo mode recorded for immediates that use the memory buffer as base - Tests to verify address patching works BUG= Review URL: https://codereview.chromium.org/1759873002 Cr-Commit-Position: refs/heads/master@{#34831}
-
- 02 Mar, 2016 1 commit
-
-
rmcilroy authored
Add support to log source position offsets to the profiler. As part of this change PositionsRecorder is split into two, with the subset needed by log.cc moved into log.h and the remainder kept in assembler.h as AssemblerPositionsRecorder. The interpreter's source position table builder is updated to log positions when the profiler is active. BUG=v8:4766 LOG=N Review URL: https://codereview.chromium.org/1737043002 Cr-Commit-Position: refs/heads/master@{#34416}
-
- 17 Feb, 2016 1 commit
-
-
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}
-
- 18 Jan, 2016 2 commits
-
-
ahaas authored
Revert of [turbofan] Implement rounding of floats on x64 and ia32 without sse4.1. (patchset #2 id:20001 of https://codereview.chromium.org/1584663007/ ) Reason for revert: Code is incorrect for -0. Original issue's description: > [turbofan] Implement rounding of floats on x64 and ia32 without sse4.1. > > The implementation sets the rounding mode flag and then uses the > cvtsd2si and cvtsi2sd instructions (convert between float and int) to do > the rounding. Input values outside int range either don't have to be > rounded anyways, or are rounded by calculating input + 2^52 - 2^52 for > positive inputs, or input -2^52 + 2^52 for negative inputs. The original > rounding mode is restored afterwards. > > R=titzer@chromium.org > > B=575379 > > Committed: https://crrev.com/fa5d09e547abe79a8c82f780deb980c53ad78beb > Cr-Commit-Position: refs/heads/master@{#33367} TBR=titzer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1593313010 Cr-Commit-Position: refs/heads/master@{#33369}
-
ahaas authored
The implementation sets the rounding mode flag and then uses the cvtsd2si and cvtsi2sd instructions (convert between float and int) to do the rounding. Input values outside int range either don't have to be rounded anyways, or are rounded by calculating input + 2^52 - 2^52 for positive inputs, or input -2^52 + 2^52 for negative inputs. The original rounding mode is restored afterwards. R=titzer@chromium.org B=575379 Review URL: https://codereview.chromium.org/1584663007 Cr-Commit-Position: refs/heads/master@{#33367}
-
- 16 Jan, 2016 2 commits
-
-
ahaas authored
The new operator converts an int32 input to float32. If the input cannot be represented exactly in float32, the value is rounded using the round-ties-even rounding mode (the default rounding mode). I provide implementations of the new operator for x64, ia32, arm, arm64, mips, mips64, ppc, and ppc64. R=titzer@chromium.org, v8-arm-ports@googlegroups.com, v8-mips-ports@googlegroups.com, v8-ppc-ports@googlegroups.com Review URL: https://codereview.chromium.org/1589363002 Cr-Commit-Position: refs/heads/master@{#33347}
-
ahaas authored
The new operator converts a float32 input to int32 through truncation. I provide implementations of the new operator for x64, ia32, arm, arm64, mips, mips64, and x87. @v8-ppc-ports, can you please take care of the ppc implementation? R=titzer@chromium.org, v8-arm-ports@googlegroups.com, v8-mips-ports@googlegroups.com, weiliang.lin@intel.com Review URL: https://codereview.chromium.org/1583323004 Cr-Commit-Position: refs/heads/master@{#33346}
-
- 15 Jan, 2016 1 commit
-
-
mstarzinger authored
This splits out the SourcePosition class into a separate header file. Reason for this refactoring is that said class is mostly used by the Crankshaft compiler and not needed for all compilers. Also having the assembler depend on the class creates a dependency cycle. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1581083009 Cr-Commit-Position: refs/heads/master@{#33325}
-
- 02 Dec, 2015 1 commit
-
-
yangguo authored
The new step-in implementation no longer tries to predict the step-in target, so we don't need the arguments count nor call type anymore. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1484893003 Cr-Commit-Position: refs/heads/master@{#32516}
-
- 27 Nov, 2015 1 commit
-
-
jochen authored
Requires passing an explicit Isolate* to a bunch of static Assembler methods. BUG=v8:2487 R=yangguo@chromium.org,jkummerow@chromium.org LOG=n Review URL: https://codereview.chromium.org/1474323002 Cr-Commit-Position: refs/heads/master@{#32376}
-
- 26 Nov, 2015 3 commits
-
-
ahaas authored
The TruncateFloat32ToInt64 operator converts a float32 to an int64 using the round-to-zero rounding mode (truncate). If the input value is outside the int64 range, then the result depends on the architecture. I implemented the operator on x64, arm64, and mips64. R=titzer@chromium.org, jacob.bramley@arm.com Committed: https://crrev.com/1df1066c3c77464d2a68d7c8d501a5a0f3ad195a Cr-Commit-Position: refs/heads/master@{#32315} Review URL: https://codereview.chromium.org/1476063002 Cr-Commit-Position: refs/heads/master@{#32325}
-
ahaas authored
Revert of [turbofan] Implemented the TruncateFloat32ToInt64 TurboFan operator. (patchset #1 id:1 of https://codereview.chromium.org/1476063002/ ) Reason for revert: Unexpected error occurred. Original issue's description: > [turbofan] Implemented the TruncateFloat32ToInt64 TurboFan operator. > > The TruncateFloat32ToInt64 operator converts a float32 to an int64 using > the round-to-zero rounding mode (truncate). If the input value is > outside the int64 range, then the result depends on the architecture. I > implemented the operator on x64, arm64, and mips64. > > R=titzer@chromium.org, jacob.bramley@arm.com > > Committed: https://crrev.com/1df1066c3c77464d2a68d7c8d501a5a0f3ad195a > Cr-Commit-Position: refs/heads/master@{#32315} TBR=jacob.bramley@arm.com,titzer@chromium.org,v8-mips-ports@googlegroups.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1475343002 Cr-Commit-Position: refs/heads/master@{#32316}
-
ahaas authored
The TruncateFloat32ToInt64 operator converts a float32 to an int64 using the round-to-zero rounding mode (truncate). If the input value is outside the int64 range, then the result depends on the architecture. I implemented the operator on x64, arm64, and mips64. R=titzer@chromium.org, jacob.bramley@arm.com Review URL: https://codereview.chromium.org/1476063002 Cr-Commit-Position: refs/heads/master@{#32315}
-
- 25 Nov, 2015 1 commit
-
-
ahaas authored
I implemented the optional Float32RoundDown operator on x64, ia32, arm, and arm64. For arm I also had to adjust the simulator. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1471913006 Cr-Commit-Position: refs/heads/master@{#32261}
-