johnmccutchan@google.com
9fb0984c9d
SSE Assembler + Linux build fixes
...
Review URL: https://codereview.chromium.org//12223115
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18493 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-13 23:05:17 +00:00
johnmccutchan@google.com
dd140c2958
Revert SSE assembler changes
...
Review URL: https://codereview.chromium.org//12212151
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18410 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-12 23:14:12 +00:00
johnmccutchan@google.com
06eb49d537
SSE Assembler and Disassembler support
...
Review URL: https://codereview.chromium.org//12207117
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18406 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-12 22:43:48 +00:00
fschneider@google.com
3cd9fa513f
Fix bug in the x64 assembler's movw instruction.
...
The order of prefixes was wrong. The operand size prefix (0x66)
must occur before the REX prefix. From the instruction set reference:
[...]the REX prefix byte must immediately precede the opcode byte or
the escape opcode byte (0FH). [...]
Also, make movw(reg, addr) unavailable, consistent with ia32.
TEST=runtime/vm/assembler_x64_test.cc
Review URL: https://codereview.chromium.org//11961013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17135 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-16 12:12:21 +00:00
srdjan@google.com
40a7130741
Inline Doubles truncate and round.
...
Review URL: https://codereview.chromium.org//11573044
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16983 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-11 20:42:47 +00:00
johnmccutchan@google.com
92d6c1e317
Add support for XMM8..XMM15
...
Review URL: https://codereview.chromium.org//11358262
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15162 260f80e4-7a28-3924-810f-c04153c831b5
2012-11-20 17:37:07 +00:00
fschneider@google.com
8aa175b9e6
Restrict immediate operands to smi where only smis are supported.
...
Re-enable redundant phi elimination.
Add x64 codegen templates and assembler instructions for immediate operands.
Fix x64 assembler for imull when using r8-r15.
Add x64 instruction for imulq(reg, imm).
Fix x64 disassembler printing of immediates.
Review URL: https://codereview.chromium.org//11362210
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14814 260f80e4-7a28-3924-810f-c04153c831b5
2012-11-12 22:44:34 +00:00
srdjan@google.com
2693f662aa
Fix movmskpd test, add masking to result.
...
Review URL: https://codereview.chromium.org//11049013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13154 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-02 23:49:30 +00:00
srdjan@google.com
fd09b935dd
Intrinsify Double.toInt.
...
Review URL: https://chromiumcodereview.appspot.com//10914142
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12064 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-07 20:41:53 +00:00
vegorov@google.com
1911b2bc81
Make register allocator to disregard constant computation with no uses.
...
Inline constant values into environments, instead of creating a use of the constant definition.
Change BinarySmiOpComp code template to allow inline constant uses for the right hand side.
R=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10916082
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11798 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-04 09:58:57 +00:00
vegorov@google.com
264c4f6d1a
Add support for XMM registers in SSA code generation pipeline.
...
Split BinaryDoubleOp into several instructions that manipulate unboxed doubles.
R=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10875030
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11313 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-24 14:45:42 +00:00
srdjan@google.com
d0a991a41c
Various cleanups, adding tests.
...
Review URL: https://chromiumcodereview.appspot.com//10807070
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9821 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-23 17:55:53 +00:00
srdjan@google.com
9b391ef9cf
Add some missing x64 instruction variations.
...
Review URL: https://chromiumcodereview.appspot.com//10696183
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9578 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-12 00:41:45 +00:00
srdjan@google.com
e74f5a721b
Implement more intrinisification for x64 (not as inlined code but as header of the target).
...
Review URL: https://chromiumcodereview.appspot.com//10701147
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9573 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-11 22:37:41 +00:00
iposva@google.com
d4bd618e75
- Fix the x64 store-barrier.
...
- Allow assembler test drivers to be shared across architectures.
- Add a shared StoreIntoObject assembler test.
Review URL: https://chromiumcodereview.appspot.com//10636017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9050 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 23:48:51 +00:00
regis@google.com
7527d97cf5
Inline Math.sqrt in new compilers.
...
Review URL: https://chromiumcodereview.appspot.com//10542167
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8702 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-15 00:56:25 +00:00
vegorov@google.com
bd19464867
Implement kDoubleToDouble and kIntegerToDouble on ia32 and x64.
...
Fix bug in assembling of cvtsi2sd on x64.
R=srdjan@google.com
Review URL: https://chromiumcodereview.appspot.com//10534116
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8593 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-13 08:29:40 +00:00
vegorov@google.com
70a81f4264
Implement inlined version of binary arithmetic operations for doubles.
...
No attempt to reuse temporary boxes or locally propagate types is done.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//10533053
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8433 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-08 11:27:28 +00:00
srdjan@google.com
755790f46f
Adding unary op optimizations, missing assembly operations.
...
Review URL: https://chromiumcodereview.appspot.com//10440099
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8174 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 20:38:55 +00:00
srdjan@google.com
91ef28b321
More intrinsification x64: array index load and store.
...
Review URL: https://chromiumcodereview.appspot.com//10451026
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7970 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-25 00:00:36 +00:00
regis@google.com
a577991ad5
Port code generator to x64.
...
Review URL: http://codereview.chromium.org//8984003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2557 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-17 00:56:02 +00:00
regis@google.com
ec7f6331d1
Add 64-bit stubs to call into the runtime and to call native functions.
...
Fix 64-bit assembler bugs.
Review URL: http://codereview.chromium.org//8818001
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2206 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-08 00:03:08 +00:00
regis@google.com
b2a50c744b
Port object tests to x64.
...
Review URL: http://codereview.chromium.org//8758012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1959 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-01 01:44:01 +00:00
regis@google.com
503896daef
Initial revision of assembler for x64.
...
Review URL: http://codereview.chromium.org//8747023
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1951 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-30 22:02:21 +00:00