- 04 Mar, 2019 1 commit
-
-
Ross McIlroy authored
BUG=v8:8801 Change-Id: I9d9d9824c6c9ad0176bbfd3723da1b578b17c256 Reviewed-on: https://chromium-review.googlesource.com/c/1495555 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#60001}
-
- 13 Apr, 2015 1 commit
-
-
vegorov authored
Deoptimization infrastructure already handles it correctly. This change fixes repetitive deoptimizations in the code like this: var u32 = new Uint32Array(1); u32[0] = -1; function tr(x) { return x|0; } function ld() { return tr(u32[0]); } while (true) ld(); Currently inlined tr will contain HArgumentsObject that is considered uint32-unsafe use and prevents u32[0] from becoming uint32 load - instead a speculative int32 load is generated which just deopts. BUG= Review URL: https://codereview.chromium.org/1077113002 Cr-Commit-Position: refs/heads/master@{#27781}
-
- 23 Aug, 2012 1 commit
-
-
vegorov@chromium.org authored
xmm0 is not saved across runtime call on x64 because MacroAssembler::EnterExitFrameEpilogue preserves only allocatable XMM registers unlike on ia32 where it preserves all registers. Cleanup handling of shifts: SHR can deoptimize only when its a shift by 0, all other shift never deoptimize. Fix type inference for i-to-t change instruction. On X64 this ensures that write-barrier is generated correctly. R=danno@chromium.org Review URL: https://chromiumcodereview.appspot.com/10868032 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Aug, 2012 1 commit
-
-
vegorov@chromium.org authored
Safe operations are those that either do not observe unsignedness or have special support for uint32 values: - all binary bitwise operations: they perform ToInt32 on inputs; - >> and << shifts: they perform ToInt32 on left hand side and ToUint32 on right hand side; - >>> shift: it performs ToUint32 on both inputs; - stores to integer external arrays (not pixel, float or double ones): these stores are "bitwise"; - HChange: special support added for conversions of uint32 values to double and tagged values; - HSimulate: special support added for deoptimization with uint32 values in registers and stack slots; - HPhi: phis that have only safe uses and only uint32 operands are uint32 themselves. BUG=v8:2097 TEST=test/mjsunit/compiler/uint32.js Review URL: https://chromiumcodereview.appspot.com/10778029 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-