neis
659e8f7b5c
[compiler] Delay allocation of code-embedded heap numbers.
...
Instead of allocating and embedding certain heap numbers into the code
during code assembly, emit dummies but record the allocation requests.
Later then, in Assembler::GetCode, allocate the heap numbers and patch
the code by replacing the dummies with the actual objects. The
RelocInfos for the embedded objects are already recorded correctly when
emitting the dummies.
R=jarin@chromium.org
BUG=v8:6048
Review-Url: https://codereview.chromium.org/2900683002
Cr-Commit-Position: refs/heads/master@{#45635}
2017-05-31 14:00:11 +00:00
Marja Hölttä
83849da70f
[iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h
...
BUG=v8:5294
Change-Id: If45f25aae8de526027b7851cb4efe0ccf4a7c4b1
Reviewed-on: https://chromium-review.googlesource.com/444226
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43388}
2017-02-23 12:10:21 +00:00
ahaas
2a78f2980b
[x64] Do not compact constants with attached reloc info.
...
Reloc info often means that the constant will be patched later, and for
this patching we have to make sure that there is enough space in the
code for the new value.
R=bmeurer@chromium.org , titzer@chromium.org , gdeepti@chromium.org
BUG=chromium:684407
TEST=cctest/test-assembler-x64/Regression684407
Review-Url: https://codereview.chromium.org/2655213003
Cr-Commit-Position: refs/heads/master@{#42719}
2017-01-27 00:34:42 +00:00
danno
95a9b76115
[turbofan] Improve codegen for 8- and 16-bit memory comparisons on Intel platforms (reland)
...
Recognize and emit in-memory comparisons of 8-bit and 16-bit values with
immediate values that fit.
LOG=N
R=epertoso@chromium.org
Review-Url: https://codereview.chromium.org/2605863002
Cr-Commit-Position: refs/heads/master@{#42344}
2017-01-13 23:34:36 +00:00
danno
5c15115e8e
[x64] Fix code generation of testw and add tests
...
BUG=v8:5798
R=epertoso@chromium.org
LOG=N
Review-Url: https://codereview.chromium.org/2619263002
Cr-Commit-Position: refs/heads/master@{#42148}
2017-01-09 18:11:20 +00:00
weiliang.lin
2e6628c487
[x64] fixed "vmovups reg, mem"
...
BUG=
Review-Url: https://codereview.chromium.org/2158923002
Cr-Commit-Position: refs/heads/master@{#37846}
2016-07-19 03:14:10 +00:00
bmeurer
f2c0264a0a
[x64] Fix invalid REX prefix for pslld, psrld and friends.
...
R=epertoso@chromium.org
Review-Url: https://codereview.chromium.org/2026633004
Cr-Commit-Position: refs/heads/master@{#36631}
2016-06-01 07:59:56 +00:00
epertoso
99230f8d0e
[x64] Fix testw with immediates.
...
Assembler::testw(Register, Immediate) and Assembler::testw(const Operand&, Immediate) were emitting only the first 8 bits of a 16-bit immediate, causing unexpected crashes.
This went unnoticed because before http://crrev.com/1948453002 no compiler was using them.
Review-Url: https://codereview.chromium.org/1962563003
Cr-Commit-Position: refs/heads/master@{#36110}
2016-05-09 13:55:44 +00:00
jochen
6f472db65a
Disable soon to be deprecated APIs per default for v8
...
Embedders still can use those APIs by default
test-api.cc still has an exception to use the old APIs...
BUG=v8:4143
R=vogelheim@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/1505803004
Cr-Commit-Position: refs/heads/master@{#32701}
2015-12-09 10:35:04 +00:00
jochen
aa9cfc8222
Make whether or not a Code object should be created by masm explicit
...
We always want to have an Isolate, so just use an extra ctor arg
BUG=2487
R=yangguo@chromium.org ,mstarzinger@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/1476763002
Cr-Commit-Position: refs/heads/master@{#32277}
2015-11-25 14:23:56 +00:00
jochen
6e13300c19
Remove usage of deprecated APIs from assembler tests
...
BUG=4134
R=epertoso@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/1460193002
Cr-Commit-Position: refs/heads/master@{#32137}
2015-11-20 09:30:22 +00:00
alph
762b425bc9
[x64] Implement vcvtsd2si AVX instruction.
...
BUG=v8:4406
LOG=N
Review URL: https://codereview.chromium.org/1413903003
Cr-Commit-Position: refs/heads/master@{#31539}
2015-10-24 18:55:57 +00:00
alph
ec27fd6e39
[x64] Implement vcvtqsi2sd AVX instruction.
...
BUG=v8:4406
LOG=N
Review URL: https://codereview.chromium.org/1413013003
Cr-Commit-Position: refs/heads/master@{#31538}
2015-10-24 16:49:52 +00:00
alph
cfcc019aff
[x64] Implemennt vroundsd AVX instruction.
...
BUG=v8:4406
LOG=N
Review URL: https://codereview.chromium.org/1420653005
Cr-Commit-Position: refs/heads/master@{#31493}
2015-10-23 07:49:26 +00:00
alph
7ae54d2b82
[x64] Implement vsqrtsd AVX instruction.
...
BUG=v8:4406
LOG=N
Review URL: https://codereview.chromium.org/1420543003
Cr-Commit-Position: refs/heads/master@{#31490}
2015-10-23 06:47:46 +00:00
alph
ce8a22a86f
[x64] Make MathMinMax use AVX instructions when available.
...
BUG=v8:4406
LOG=N
Review URL: https://codereview.chromium.org/1421733003
Cr-Commit-Position: refs/heads/master@{#31488}
2015-10-23 06:10:55 +00:00
alph
87c468383a
[x64] Implement vpcmpeqd, vpslld, vpsrld AVX instructions.
...
BUG=v8:4406
LOG=N
Review URL: https://codereview.chromium.org/1419983002
Cr-Commit-Position: refs/heads/master@{#31452}
2015-10-22 07:01:11 +00:00
alph
fa60b82b19
[x64] Replace movaps with appropriate vmov* instructions when AVX is enabled.
...
BUG=v8:4406
LOG=N
Review URL: https://codereview.chromium.org/1416663004
Cr-Commit-Position: refs/heads/master@{#31391}
2015-10-20 04:58:16 +00:00
alph
19aa500567
[x64] Emit vmovss when AVX is enabled.
...
BUG=v8:4406
LOG=N
Review URL: https://codereview.chromium.org/1413183002
Cr-Commit-Position: refs/heads/master@{#31385}
2015-10-19 20:35:36 +00:00
alph
a57c62f679
[x64] Emit vmovmskpd when AVX is enabled.
...
BUG=v8:4406
LOG=N
Review URL: https://codereview.chromium.org/1411023002
Cr-Commit-Position: refs/heads/master@{#31350}
2015-10-18 16:12:35 +00:00
alph
9131cf7ec2
[x64] Emit vcvtss2sd & vcvtsd2ss when AVX is enabled.
...
BUG=v8:4406
LOG=N
Review URL: https://codereview.chromium.org/1411743003
Cr-Commit-Position: refs/heads/master@{#31349}
2015-10-18 16:11:31 +00:00
alph
0138b2652f
[x64] Emit vcvttsd2si[q] when AVX is enabled.
...
BUG=v8:4406
LOG=N
Review URL: https://codereview.chromium.org/1406353003
Cr-Commit-Position: refs/heads/master@{#31348}
2015-10-18 15:43:41 +00:00
alph
5d9c7ab648
[x64] Implement vmovd and vmovq AVX instructions.
...
BUG=v8:4406
LOG=N
Review URL: https://codereview.chromium.org/1409873002
Cr-Commit-Position: refs/heads/master@{#31322}
2015-10-16 05:20:46 +00:00
alph
7cdcf0b1bc
[x64] Use vcvtlsi2sd when AVX is enabled
...
BUG=v8:4406
LOG=N
Committed: https://crrev.com/adcbe619a959fe1d8f21d06fbf5984868c4f6b9a
Cr-Commit-Position: refs/heads/master@{#31276}
Review URL: https://codereview.chromium.org/1404903004
Cr-Commit-Position: refs/heads/master@{#31315}
2015-10-15 17:50:36 +00:00
alph
ad1e057049
Revert of [x64] Use vcvtlsi2sd when AVX is enabled (patchset #1 id:1 of https://codereview.chromium.org/1404903004/ )
...
Reason for revert:
Caused a crash on Windows
Original issue's description:
> [x64] Use vcvtlsi2sd when AVX is enabled
>
> BUG=v8:4406
> LOG=N
>
> Committed: https://crrev.com/adcbe619a959fe1d8f21d06fbf5984868c4f6b9a
> Cr-Commit-Position: refs/heads/master@{#31276}
TBR=bmeurer@chromium.org ,danno@chromium.org,yurys@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4406
Review URL: https://codereview.chromium.org/1396283004
Cr-Commit-Position: refs/heads/master@{#31277}
2015-10-15 06:08:52 +00:00
alph
adcbe619a9
[x64] Use vcvtlsi2sd when AVX is enabled
...
BUG=v8:4406
LOG=N
Review URL: https://codereview.chromium.org/1404903004
Cr-Commit-Position: refs/heads/master@{#31276}
2015-10-15 05:53:24 +00:00
alph
5cda2bcfab
[x64] Use vmovapd and vmovsd when AVX is enabled.
...
R=bmeurer@chromium.org
BUG=v8:4406
LOG=N
Review URL: https://codereview.chromium.org/1391963005
Cr-Commit-Position: refs/heads/master@{#31275}
2015-10-15 04:15:00 +00:00
svenpanne
4d3044e161
Removed src/{isolate,property-details,utils}-inl.h
...
Baby steps towards saner #includes...
Review URL: https://codereview.chromium.org/1051393003
Cr-Commit-Position: refs/heads/master@{#27958}
2015-04-21 10:21:37 +00:00
jing.bao
584a351484
[x64] Introduce BMI instructions.
...
BUG=v8:4015
LOG=n
Review URL: https://codereview.chromium.org/1040603002
Cr-Commit-Position: refs/heads/master@{#27648}
2015-04-08 07:15:59 +00:00
bmeurer
8dad78cdbd
[turbofan] Add backend support for float32 operations.
...
This adds the basics necessary to support float32 operations in TurboFan.
The actual functionality required to detect safe float32 operations will
be added based on this later. Therefore this does not affect production
code except for some cleanup/refactoring.
In detail, this patchset contains the following features:
- Add support for float32 operations to arm, arm64, ia32 and x64
backends.
- Add float32 machine operators.
- Add support for float32 constants to simplified lowering.
- Handle float32 representation for phis in simplified lowering.
In addition, contains the following (related) cleanups:
- Fix/unify naming of backend instructions.
- Use AVX comparisons when available.
- Extend ArchOpcodeField to 9 bits (required for arm64).
- Refactor some code duplication in instruction selectors.
BUG=v8:3589
LOG=n
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/1044793002
Cr-Commit-Position: refs/heads/master@{#27509}
2015-03-30 07:34:04 +00:00
yangguo
019096f829
Serializer: move to a subfolder and clean up includes.
...
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/1041743002
Cr-Commit-Position: refs/heads/master@{#27501}
2015-03-27 15:29:07 +00:00
bmeurer
008f4732f7
[x64] Assembler support for internal references and RIP relative addressing.
...
R=dcarney@chromium.org
BUG=v8:3872
LOG=n
Review URL: https://codereview.chromium.org/887013003
Cr-Commit-Position: refs/heads/master@{#26486}
2015-02-06 12:48:52 +00:00
bmeurer
c65ae4f10c
Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.".
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/877753007
Cr-Commit-Position: refs/heads/master@{#26346}
2015-01-30 09:29:41 +00:00
Benedikt Meurer
883852293a
Revert "Make GCC happy again." and "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.".
...
This reverts commit 6a4c0a3bae
and commit
0deaa4b629
for breaking GCC bots.
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/893533003
Cr-Commit-Position: refs/heads/master@{#26342}
2015-01-30 07:19:57 +00:00
bmeurer
0deaa4b629
Initial switch to Chromium-style CHECK_* and DCHECK_* macros.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/888613002
Cr-Commit-Position: refs/heads/master@{#26340}
2015-01-30 06:25:36 +00:00
Weiliang Lin
83a635e0d7
[x64] Introduce FMA3 instructions on scalar data elements.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/757503002
Patch from Weiliang Lin <weiliang.lin@intel.com>.
Cr-Commit-Position: refs/heads/master@{#25509}
2014-11-26 05:31:55 +00:00
danno@chromium.org
a1383e2250
Land the Fan (disabled)
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/426233002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-30 13:54:45 +00:00
svenpanne@chromium.org
018ef484b9
More OStreamsUse OStreams more often.
...
This is a mostly mechanical CL (more than 90% Emacs macros and
query-replace-regexp) moving FILE*/StringStream*-based APIs to
OStream-based APIs. There are a few places where this had to stop,
otherwise the CL would be even bigger, but this can easily and
incrementally cleaned up later.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/363323003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-07 09:57:29 +00:00
jochen@chromium.org
a4506cd3f2
Move platform abstraction to base library
...
Also split v8-core independent methods from checks.h to base/logging.h and
merge v8checks with the rest of checks.
The CPU::FlushICache method is moved to CpuFeatures::FlushICache
RoundUp and related methods are moved to base/macros.h
Remove all layering violations from src/libplatform
BUG=none
R=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/358363002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 13:25:46 +00:00
mstarzinger@chromium.org
fec6e62dfb
Check alpha-sorting of includes during presubmit.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/333013002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-20 08:40:11 +00:00
jochen@chromium.org
56a486c322
Use full include paths everywhere
...
- this avoids using relative include paths which are forbidden by the style guide
- makes the code more readable since it's clear which header is meant
- allows for starting to use checkdeps
BUG=none
R=jkummerow@chromium.org , danno@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/304153016
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 08:12:43 +00:00
yangguo@chromium.org
fe243379f8
Decouple CpuFeatures from serializer state.
...
Traditionally, we cross compile a snapshot iff the serializer is enabled.
This will change in the future.
Changes:
- CpuFeatures probing is done once per process, depending on whether we
cross compile.
- CpuFeatures are consolidated into the platform-independent assembler.h
as much as possible.
- FLAG_enable_<feature> will only be checked at probing time (already the
case for ARM).
- The serializer state is cached by the MacroAssembler.
- PlatformFeatureScope is no longer necessary.
- CPUFeature enum values no longer map to CPUID bit fields.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/285233010
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 15:18:24 +00:00
yangguo@chromium.org
17b33fa1da
Handlify code allocation.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/235153003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20795 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 11:38:56 +00:00
haitao.feng@intel.com
a72e3525fc
Refactor the arithmetic instructions for x64
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/214753002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-28 11:13:14 +00:00
haitao.feng@intel.com
329b0449d5
Introduce rolp, rorp, rclp, rcrp, shlp, shrp and sarp for x64 port
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/214493002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-28 04:55:00 +00:00
haitao.feng@intel.com
6130206c2f
Introduce andp, notp, orp and xorp for x64 port
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/205343013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 12:15:35 +00:00
haitao.feng@intel.com
c867df5181
Introduce addp, idivp, imulp and subp for x64 port
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/196893003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 02:42:10 +00:00
haitao.feng@intel.com
e812aca6b3
Introduce Push and Pop macro instructions for x64
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/199903002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 08:59:04 +00:00
svenpanne@chromium.org
cb6e1b4536
Win64 fixes.
...
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/157243004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-07 07:44:19 +00:00
svenpanne@chromium.org
bda84eaf23
Make LeakSanitizer happy, part 2. Fixed register usage on the way.
...
Note that according to the System V ABI for AMD64, rbx must be
preserved across calls. We actually crash with clang in the x64
assembler tests without that fix, we were lucky with GCC.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/144313017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19178 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-07 07:06:13 +00:00