Commit Graph

24 Commits

Author SHA1 Message Date
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