- 08 Mar, 2019 1 commit
-
-
Clemens Hammacher authored
It's not being used, and causes compile errors on windows because of a name clash (see referenced bugs). R=mstarzinger@chromium.org CC=tebbi@chromium.org, jarin@chromium.org Bug: v8:8953 Change-Id: I22dcdbcbe92f92c390a2f2cdd289dda7f7dc4eb1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1505794Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60117}
-
- 18 Feb, 2019 1 commit
-
-
Victor Costan authored
Googletest is (at last) converging with industry-standard terminology [1]. We previously called test suites "test cases", which was rather confusing for folks coming from any other testing framework. Chrome now has a googletest version that supports _TEST_SUITE_ macros instead of _TEST_CASE_, so this CL cleans up some of the outdated usage. [1] https://github.com/google/googletest/blob/master/googletest/docs/primer.md#beware-of-the-nomenclature Bug: chromium:925652 Change-Id: I3cd02b9fa6dbece1594bbfd50a21ad7503c2aab9 Reviewed-on: https://chromium-review.googlesource.com/c/1475654Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Victor Costan <pwnall@chromium.org> Cr-Commit-Position: refs/heads/master@{#59666}
-
- 12 Nov, 2018 1 commit
-
-
Ben L. Titzer authored
This CL splits the backend of TurboFan off into its own directory, without changing namespaces. This makes ownership management a bit more fine-grained with a logical separation. R=mstarzinger@chromium.org,jarin@chromium.org,adamk@chromium.org Change-Id: I2ac40d6ca2c4f04b8474b630aae0286ecf79ef42 Reviewed-on: https://chromium-review.googlesource.com/c/1308333 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57437}
-
- 25 Oct, 2018 1 commit
-
-
Igor Sheludko authored
Bug: v8:8182 Change-Id: I4dadd9cab071ecd4314c370be5f444e36acb708e Reviewed-on: https://chromium-review.googlesource.com/c/1297317Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#56973}
-
- 24 Oct, 2018 1 commit
-
-
Tom Tan authored
This is a reland of fcbb023b Original change's description: > Add Windows ARM64 ABI support to V8 > > This change added Windows ARM64 ABI support, major things are: > 1. Excluding x18 register from any usage because it is reserved as > platform register. Preserve alignment after the change. > 2. Fix the assumption of LP64 in arm64 backend. Windows ARM64 is > still LLP64. > 3. Stack guard page probe for large allocation on stack. > > Reference: > Windows ARM64 ABI: > https://docs.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=vs-2017 > > Bug: chromium:893460 > Change-Id: I325884ac8dab719154a0047141e18a9fcb8dff7e > Reviewed-on: https://chromium-review.googlesource.com/c/1285129 > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56881} CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_arm64_dbg_recipe TBR=mlippautz@chromium.org Bug: chromium:893460 Change-Id: Icc45fd091c33f7df805842a70236b79b14756f52 Reviewed-on: https://chromium-review.googlesource.com/c/1297300 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#56965}
-
- 23 Oct, 2018 2 commits
-
-
Michael Hablich authored
This reverts commit fcbb023b. Reason for revert: blocks roll https://chromium-review.googlesource.com/c/chromium/src/+/1296315 Original change's description: > Add Windows ARM64 ABI support to V8 > > This change added Windows ARM64 ABI support, major things are: > 1. Excluding x18 register from any usage because it is reserved as > platform register. Preserve alignment after the change. > 2. Fix the assumption of LP64 in arm64 backend. Windows ARM64 is > still LLP64. > 3. Stack guard page probe for large allocation on stack. > > Reference: > Windows ARM64 ABI: > https://docs.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=vs-2017 > > Bug: chromium:893460 > Change-Id: I325884ac8dab719154a0047141e18a9fcb8dff7e > Reviewed-on: https://chromium-review.googlesource.com/c/1285129 > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56881} TBR=bbudge@chromium.org,ulan@chromium.org,machenbach@chromium.org,hpayer@chromium.org,brucedawson@chromium.org,mlippautz@chromium.org,ahaas@chromium.org,bmeurer@chromium.org,Tom.Tan@microsoft.com Change-Id: I0b804af6dfca9409a655194fa6e5407f209be2dc No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:893460 Reviewed-on: https://chromium-review.googlesource.com/c/1296460Reviewed-by:
Michael Hablich <hablich@chromium.org> Commit-Queue: Michael Hablich <hablich@chromium.org> Cr-Commit-Position: refs/heads/master@{#56912}
-
Tom Tan authored
This change added Windows ARM64 ABI support, major things are: 1. Excluding x18 register from any usage because it is reserved as platform register. Preserve alignment after the change. 2. Fix the assumption of LP64 in arm64 backend. Windows ARM64 is still LLP64. 3. Stack guard page probe for large allocation on stack. Reference: Windows ARM64 ABI: https://docs.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=vs-2017 Bug: chromium:893460 Change-Id: I325884ac8dab719154a0047141e18a9fcb8dff7e Reviewed-on: https://chromium-review.googlesource.com/c/1285129 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56881}
-
- 11 Oct, 2018 1 commit
-
-
Igor Sheludko authored
... containing RootsTable, ExternalReferenceTable, builtins array and potentially some other data that can be accessed via the RootRegister. This is a preliminary step before adding support for pointer-compression friendly heap layout. Bug: v8:8182 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I2899f657aaff1351a5304afa0b1a4c5ae4cfc31d Reviewed-on: https://chromium-review.googlesource.com/c/1245426Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#56551}
-
- 22 Aug, 2018 1 commit
-
-
Bogdan Lazarescu authored
This is useful even if there are other uses of the arithmetic result, because it moves dependencies further back. Change-Id: I6136a657b547198cb4ec92f38b89ddf5df334124 Reviewed-on: https://chromium-review.googlesource.com/1179662Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Bogdan Lazarescu <bogdan.lazarescu@arm.com> Cr-Commit-Position: refs/heads/master@{#55292}
-
- 13 Aug, 2018 1 commit
-
-
Camillo Bruni authored
This should make the uses of binary vs. bitwise not very clear: - Word32BinaryNot for logical negation - Word32BitwiseNot for bitwise negation Change-Id: I3345913111da0dbdae6fdf285f090b67eb3f3afc Reviewed-on: https://chromium-review.googlesource.com/1169205 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#55091}
-
- 05 Jul, 2018 1 commit
-
-
Georgia Kouveli authored
This is a reland of 8e39af62 Original change's description: > [arm64] Use root register for addressing external references. > > This optimization is already done on x64 (7500e507). > > Bug: v8:7844 > Change-Id: Iccc3bb55aa79ef1d4423576c79d9ce6f829f2828 > Reviewed-on: https://chromium-review.googlesource.com/1120343 > Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54162} Bug: v8:7844 Change-Id: I2eab2d753fd8e374bf7c912a107c93edc58ef4c7 Reviewed-on: https://chromium-review.googlesource.com/1126259Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Cr-Commit-Position: refs/heads/master@{#54257}
-
- 04 Jul, 2018 1 commit
-
-
Aleksey Kozyatinskiy authored
This reverts commit 8e39af62. Reason for revert: prevent v8 roll to chromium. Original change's description: > [arm64] Use root register for addressing external references. > > This optimization is already done on x64 (7500e507). > > Bug: v8:7844 > Change-Id: Iccc3bb55aa79ef1d4423576c79d9ce6f829f2828 > Reviewed-on: https://chromium-review.googlesource.com/1120343 > Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54162} TBR=sigurds@chromium.org,georgia.kouveli@arm.com Change-Id: I08801917164e42c99a14a5e767d5c034f6979e87 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7844 Reviewed-on: https://chromium-review.googlesource.com/1124996Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#54188}
-
- 03 Jul, 2018 1 commit
-
-
Georgia Kouveli authored
This optimization is already done on x64 (7500e507). Bug: v8:7844 Change-Id: Iccc3bb55aa79ef1d4423576c79d9ce6f829f2828 Reviewed-on: https://chromium-review.googlesource.com/1120343 Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#54162}
-
- 20 Jun, 2018 1 commit
-
-
Georgia Kouveli authored
When encountering a LoadStackPointer input to a comparison, generate a register LocationOperand that points to the stack pointer. This can avoid unnecessary spilling of the stack pointer. Since sp is a special register for arm64, we need to add a mechanism to print its name in RegisterConfiguration. This is a port of https://chromium-review.googlesource.com/1055568 that made the same change for arm. It also ports the tests added in https://chromium-review.googlesource.com/1099068 to arm and arm64. Bug: v8:7844 Change-Id: I5adc672ff877b9888ef755e8e60e4eabbc61061b Reviewed-on: https://chromium-review.googlesource.com/1107810Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Cr-Commit-Position: refs/heads/master@{#53889}
-
- 29 Jan, 2018 1 commit
-
-
Michael Starzinger authored
R=tebbi@chromium.org Change-Id: Iae9a3774eb7913388350ce3cd0a96d6a6cca25e8 Reviewed-on: https://chromium-review.googlesource.com/885845Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#50926}
-
- 04 Dec, 2017 1 commit
-
-
Pierre Langlois authored
Add support for matching '(x & mask) == mask' when mask has a single bit set, and translate this into a tbnz instruction. This patch only does this for 32-bit operations, we can port it to 64-bit operations as a follow-up if we find matches. This transformation mostly touches the snapshot where we get ~120 hits. This pattern can also show up in JavaScript when introduced by the EffectControlLinearizer pass. Bug: Change-Id: Ib37c6e0bd3831b7c17709357b00ca53735621605 Reviewed-on: https://chromium-review.googlesource.com/803272Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/master@{#49822}
-
- 02 Dec, 2017 1 commit
-
-
Mathias Bynens authored
This patch normalizes the casing of hexadecimal digits in escape sequences of the form `\xNN` and integer literals of the form `0xNNNN`. Previously, the V8 code base used an inconsistent mixture of uppercase and lowercase. Google’s C++ style guide uses uppercase in its examples: https://google.github.io/styleguide/cppguide.html#Non-ASCII_Characters Moreover, uppercase letters more clearly stand out from the lowercase `x` (or `u`) characters at the start, as well as lowercase letters elsewhere in strings. BUG=v8:7109 TBR=marja@chromium.org,titzer@chromium.org,mtrofin@chromium.org,mstarzinger@chromium.org,rossberg@chromium.org,yangguo@chromium.org,mlippautz@chromium.org NOPRESUBMIT=true Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I790e21c25d96ad5d95c8229724eb45d2aa9e22d6 Reviewed-on: https://chromium-review.googlesource.com/804294 Commit-Queue: Mathias Bynens <mathias@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#49810}
-
- 01 Dec, 2017 1 commit
-
-
Clemens Hammacher authored
V8_INT64_C will be cleaned up in a follow-up CL. R=tebbi@chromium.org,mlippautz@chromium.org Bug: v8:7109 Change-Id: I6af97e7266039eb443896b404b77b8e2b5de5adb Reviewed-on: https://chromium-review.googlesource.com/803294Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#49790}
-
- 18 Oct, 2017 1 commit
-
-
Clemens Hammacher authored
This makes the function constexpr and implements it for arbitrary unsigned integer types (up to 64 bits, but this can be extended if needed). R=mstarzinger@chromium.org Bug: v8:6600, v8:6921 Change-Id: I86d427238fadd55abb5a27f31ed648d4b02fc358 Reviewed-on: https://chromium-review.googlesource.com/718457 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48696}
-
- 15 Mar, 2017 1 commit
-
-
Marja Hölttä authored
BUG=v8:5294 Change-Id: I6214c50c7d1344210a80763b066e5ec56df1265a Reviewed-on: https://chromium-review.googlesource.com/453460 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#43820}
-
- 08 Feb, 2017 1 commit
-
-
ahaas authored
Arm64 compiles "x +_64 (y >> shift)" into a single instruction if "shift" is a constant. The code generator expects that "shift" is a 32 bit constant. however, TurboFan can also pass in a 64 bit constant, which caused a crash in the code generator. With this CL we cast the constant of TurboFan to an int in the instruction selector and thereby satisfy the assumption of the code generator. This should be correct since the code generator anyways cast the "shift" to an int5 or int6 eventually. R=v8-arm-ports@googlegroups.com BUG=v8:5923 Review-Url: https://codereview.chromium.org/2669203005 Cr-Commit-Position: refs/heads/master@{#43036}
-
- 22 Sep, 2016 1 commit
-
-
georgia.kouveli authored
Generate TBZ/TBNZ for certain comparisons against zero. E.g. instead of: cmp w0, 0x0 b.lt/ge <addr> we can generate: tbnz/tbz w0, 31, <addr> BUG= Review-Url: https://codereview.chromium.org/2359723004 Cr-Commit-Position: refs/heads/master@{#39620}
-
- 14 Sep, 2016 1 commit
-
-
georgia.kouveli authored
BUG= Review-Url: https://codereview.chromium.org/2337953003 Cr-Commit-Position: refs/heads/master@{#39409}
-
- 07 Sep, 2016 1 commit
-
-
georgia.kouveli authored
We were previously incorrectly changing: sub r0, 0, r1 cmp r2, r0 b.cond <addr> to: cmn r2, r1 b.cond <addr> for all conditions. This is incorrect for conditions involving the C (carry) and V (overflow) flags, and in particular in the case where r1 = INT_MIN. The optimization is still safe to perform for Equal and NotEqual since they do not depend on the C and V flags. BUG= Review-Url: https://codereview.chromium.org/2318043002 Cr-Commit-Position: refs/heads/master@{#39246}
-
- 12 Aug, 2016 2 commits
-
-
georgia.kouveli authored
Instead of loading 64 bits and shifting: ldr x0, [x1, #offset] asr x0, x0, #32 directly load the interesting 32 bits and sign-extend: ldrsw x0, [x1, #offset+4] BUG= Review-Url: https://codereview.chromium.org/2243843002 Cr-Commit-Position: refs/heads/master@{#38622}
-
georgia.kouveli authored
BUG= Review-Url: https://codereview.chromium.org/2240803003 Cr-Commit-Position: refs/heads/master@{#38612}
-
- 08 Aug, 2016 1 commit
-
-
ahaas authored
This CL changes the semantics of FloatXXSub to match the semantics of the semantics of FloatXXSubPreserveNan. Therefore there is no need anymore for the FloatXXSubPreserveNan operators. The optimizations in VisitFloatXXSub which are removed in this CL have already been moved to machine-operator-reducer.cc in https://codereview.chromium.org/2226663002 R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2220973002 Cr-Commit-Position: refs/heads/master@{#38437}
-
- 05 Aug, 2016 2 commits
-
-
ahaas authored
R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2215403002 Cr-Commit-Position: refs/heads/master@{#38399}
-
georgia.kouveli authored
Adding new methods to the code stub assembler and interpreter assembler to combine loading and untagging SMIs, so that on 64-bit architectures we can avoid loading the full 64 bits and load the 32 interesting bits directly instead. Review-Url: https://codereview.chromium.org/2183923003 Cr-Commit-Position: refs/heads/master@{#38361}
-
- 22 Jul, 2016 1 commit
-
-
bmeurer authored
So far we don't have a useful way to inline Math.max or Math.min in TurboFan optimized code. This adds new operators NumberMax and NumberMin and changes the Float64Max/Float64Min operators to have JavaScript semantics instead of the C++ semantics that it had previously. This also removes support for recognizing the tenary case in the CommonOperatorReducer, since that doesn't seem to have any positive impact (and actually doesn't show up in regular JavaScript, where people use Math.max/Math.min instead). Drive-by-fix: Also nuke the unused Float32Max/Float32Min operators. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2170343002 Cr-Commit-Position: refs/heads/master@{#37971}
-
- 29 Jun, 2016 1 commit
-
-
georgia.kouveli authored
Perform the following transformation: | Before | After | |------------------+---------------------| | add w2, w0, w1 | adds w2, w0, w1 | | cmp w2, #0x0 | b.<cond'> <addr> | | b.<cond> <addr> | | |------------------+---------------------| | add w2, w0, w1 | adds w2, w0, w1 | | cmp #0x0, w2 | b.<cond'> <addr> | | b.<cond> <addr> | | and the same for and instructions instead of add. When the result of the add/and is not used, generate cmn/tst instead. We need to take care with which conditions we can handle and what new condition we map them to. BUG= Review-Url: https://codereview.chromium.org/2065243005 Cr-Commit-Position: refs/heads/master@{#37400}
-
- 23 Jun, 2016 1 commit
-
-
georgia.kouveli authored
CMN is a flag-setting add operation, and therefore is commutative. {Add,Sub}WithOverflow generate ADD/SUB instructions that cannot support a ROR shift. BUG= Review-Url: https://codereview.chromium.org/2087233005 Cr-Commit-Position: refs/heads/master@{#37212}
-
- 01 Jun, 2016 1 commit
-
-
pierre.langlois authored
This patch enables the following transformations in the instruction selector: | Before | After | |------------------+------------------------| | and x3, x1, #0x1 | tb{,n}z w1, #0, #+0x78 | | cmp x3, #0x0 | | | b.{eq,ne} #+0x80 | | |------------------+------------------------| | cmp x0, #0x0 | cb{,n}z x0, #+0x48 | | b.{eq,ne} #+0x4c | | I have not seen these patterns beeing generated by turbofan, however the stubs hit these cases frequently. A particular reason is that we are turning operations that check for a Smi into a single `tbz`. As a concequence, the interpreter is affected thanks to inlining turbofan stubs into it's bytecode handlers. I have noticed the size of the interpreter was reduced by 200 instructions. BUG= Review-Url: https://codereview.chromium.org/2022073002 Cr-Commit-Position: refs/heads/master@{#36632}
-
- 27 May, 2016 1 commit
-
-
georgia.kouveli authored
Adding optional operators for FNeg for WebAssembly, as the current implementation was significantly suboptimal for ARM. Review-Url: https://codereview.chromium.org/2011303002 Cr-Commit-Position: refs/heads/master@{#36544}
-
- 13 May, 2016 1 commit
-
-
pierre.langlois authored
This patch adds support for the `Operand2_R_LSL_I` addressing mode to loads and stores. This allows merging a shift instruction into a MemoryOperand. Since the shift immediate is restricted to the log2 of the operation width, the opportunities to hit this are slim. However, Ignition's bytecode handlers hit this case all the time: kind = BYTECODE_HANDLER name = Star compiler = turbofan Instructions (size = 44) 0x23e67280 0 add x1, x19, #0x1 (1) 0x23e67284 4 ldrsb x1, [x20, x1] 0x23e67288 8 sxtw x1, w1 0x23e6728c 12 mov x2, fp 0x23e67290 16 str x0, [x2, x1, lsl #3] ^^^^^^^^^^^^^^^^^^^^^ 0x23e67294 20 add x19, x19, #0x2 (2) 0x23e67298 24 ldrb w1, [x20, x19] 0x23e6729c 28 ldr x1, [x21, x1, lsl #3] ^^^^^^^^^^^^^^^^^^^^^ 0x23e672a0 32 br x1 Additionally, I noticed the optimisation occurs once in both the `StringPrototypeCharAt` and `StringPrototypeCharCodeAt` turbofan stubs. BUG= Review-Url: https://codereview.chromium.org/1972103002 Cr-Commit-Position: refs/heads/master@{#36227}
-
- 04 May, 2016 2 commits
-
-
pierre.langlois authored
A load instruction will implicitely clear the top 32 bits when writing to a W register. This patch avoids generating a `mov` instruction to zero-extend the result in this case. For example, this occurs in the generated code for dispatching to the next bytecode in the interpreter: kind = BYTECODE_HANDLER name = LdaZero compiler = turbofan Instructions (size = 36) 0x32e64c60 0 add x19, x19, #0x1 (1) 0x32e64c64 4 ldrb w0, [x20, x19] 0x32e64c68 8 mov w0, w0 ^^^^^^^^^^ 0x32e64c6c 12 lsl x0, x0, #3 0x32e64c70 16 ldr x1, [x21, x0] 0x32e64c74 20 movz x0, #0x0 0x32e64c78 24 br x1 BUG= Review-Url: https://codereview.chromium.org/1950013003 Cr-Commit-Position: refs/heads/master@{#36038}
-
martyn.capewell authored
When storing an immediate integer or floating point zero, use the zero register as the source value. This avoids the need to sometimes allocate a new register. BUG= Review-Url: https://codereview.chromium.org/1945783002 Cr-Commit-Position: refs/heads/master@{#36013}
-
- 11 Dec, 2015 1 commit
-
-
jarin authored
Review URL: https://codereview.chromium.org/1513383003 Cr-Commit-Position: refs/heads/master@{#32803}
-
- 10 Dec, 2015 1 commit
-
-
jarin authored
MachineType is now a class with two enum fields: - MachineRepresentation - MachineSemantic Both enums are usable on their own, and this change switches some places from using MachineType to use just MachineRepresentation. Most notably: - register allocator now uses just the representation. - Phi and Select nodes only refer to representations. Review URL: https://codereview.chromium.org/1513543003 Cr-Commit-Position: refs/heads/master@{#32738}
-
- 30 Nov, 2015 1 commit
-
-
vogelheim authored
R=bmeurer@chromium.org, mstarzinger@chromium.org BUG=chromium:508898 LOG=Y Review URL: https://codereview.chromium.org/1477413002 Cr-Commit-Position: refs/heads/master@{#32400}
-