kmillikin@google.com
25ac913c69
Remove the default contains_call parameter on location summaries.
...
The plan is to use this parameter to make finer distinctions between
calls (e.g., safepoint vs. non-safepoint). It's a bit safer to eliminate
the default.
R=vegorov@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10843006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10052 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-31 11:51:47 +00:00
vegorov@google.com
61dc368874
Fix kStoreBufferBlockProcessRuntimeEntry calling sequence.
...
Poping of volatile registers was performed without taking into account the fact that stack pointer could have been modified to ensure correct alignment _after_ volatile registers were pushed.
Enable --use-ssa on x64 again.
BUG=4221
Review URL: https://chromiumcodereview.appspot.com//10820053
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10007 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-30 10:38:48 +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
vegorov@google.com
d83a634324
Add spill slot locations.
...
Review URL: https://chromiumcodereview.appspot.com//10805053
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9810 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-23 14:05:48 +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
vegorov@google.com
1bd5a9b414
Skeleton of a linear scan register allocator.
...
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//10696151
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9563 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-11 18:52:17 +00:00
iposva@google.com
dd800b6870
- On store buffer block overflow call a VM leaf function to
...
add the entries into the store buffer.
- Add a way to preserve and restore caller saved registers.
- Clean up the implementation of the stub for Assembler::Stop.
Review URL: https://chromiumcodereview.appspot.com//10758008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9490 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-09 22:58:27 +00:00
iposva@google.com
cccf112d1e
- Document the store barrier.
...
Review URL: https://chromiumcodereview.appspot.com//10658008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9051 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-23 00:17:25 +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
iposva@google.com
936e659da1
- Remove extra jumps from store barrier on x64.
...
Review URL: https://chromiumcodereview.appspot.com//10641018
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9014 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 07:57:11 +00:00
iposva@google.com
5e52657f33
- Implement the filtering store barrier on x64.
...
Review URL: https://chromiumcodereview.appspot.com//10581049
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8953 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-20 23:48:26 +00:00
asiva@google.com
88243dfce2
Rework leaf calls as just simple C calls with a signature and not the NativeArgumentDescriptor.
...
Review URL: https://chromiumcodereview.appspot.com//10592006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8881 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-19 23:57:40 +00:00
vegorov@google.com
959cf98b00
Implement a simple register allocator that tries to keep instruction results in registers.
...
Add --optimization-filter flag that allows to disbable optimizations for all function which do not match prefix. This allows to quickly localize problems with code generation.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//10559035
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8811 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-18 18:04:22 +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
cshapiro@google.com
4dc1d4de6d
Intrinsify some ByteArray methods.
...
get:length is intrinsified for internal and external subtypes.
[] is intrinsified for 8- and 16-bit internal subtypes on ia32.
[] is also intrinsified for 32-bit internal subtypes on x64.
Review URL: https://chromiumcodereview.appspot.com//10546035
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8371 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-06 23:43:42 +00:00
srdjan@google.com
0912e4ded7
More code for ia32, more shared code.
...
CreateArrayComp, EqualityCompareComp, StoreStaticField, LoadStaticField, StoreIndexedComp, StoreInstanceFieldComp, Throw, Rethrow, AssertBooleanComp.
Made more code shared, which has the disadvantage od splitting MakeLocationSummary from EmitNativeCode. Discuss.
Review URL: https://chromiumcodereview.appspot.com//10543013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8343 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-06 15:42:07 +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
vegorov@google.com
9125248ea2
In generated code for x64 don't load object's class directly from class_ field.
...
Instead look it up in class table by class index taken from object's tags.
R=iposva@google.com
Review URL: https://chromiumcodereview.appspot.com//10458031
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8159 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 15:35:14 +00:00
srdjan@google.com
60cb692878
Do pops instead of addq(RSP when possible).
...
Review URL: https://chromiumcodereview.appspot.com//10458033
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8110 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-30 16:05:10 +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
srdjan@google.com
8dd46bccc7
Implement some intrinsics on x64, fix a bug in ia32 intrinciscs (must return false if there is a fall-through, so that slow path will be generated).
...
Review URL: https://chromiumcodereview.appspot.com//10450006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7951 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-24 16:15:09 +00:00
vegorov@google.com
f999f30052
Extend assembler with ability to produce comments for the generated code.
...
Extend x64 disassembler with ability to decode and output recorded comments.
Example output (currently comments are emitted only by flow graph compiler at block/instruction boundaries, once instruction printing is refactored and supports printing into buffer simple "instruction" comment will be replaced with the actual IL construct):
;; B0
;; B1
;; instruction
0x007f0fff812525 00000055 49 bb 21 00 b4 04 10 mov $0x7f1004b40021,%r11
0x007f0fff81252c 0000005c 7f 00 00
0x007f0fff81252f 0000005f 41 53 push %r11
R=srdjan@google.com
Review URL: https://chromiumcodereview.appspot.com//10407019
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7723 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-17 21:56:16 +00:00
efortuna@google.com
b81f7a7402
Un revert the revert
...
Review URL: https://chromiumcodereview.appspot.com//10386152
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7672 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-15 22:28:10 +00:00
efortuna@google.com
01b3e58e08
reverting 7668??
...
Not clear why this claused widespread breakage. Investigating.
Review URL: https://chromiumcodereview.appspot.com//10388154
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7671 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-15 22:21:25 +00:00
fschneider@google.com
c47128bd66
Replace long sequences of popq with a Drop(int) macro instruction.
...
This is for now only done on x64.
Review URL: https://chromiumcodereview.appspot.com//10383189
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7668 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-15 21:41:25 +00:00
asiva@google.com
3107319e40
Simplify representation of stack frames. Remove the special types DartFrame/StubFrame and instead use StackFrame with methods IsDartFrame and IsStubFrame for frames representing Dart or Stub Code. This eliminates all the complexity that was added to ensure that we always see only one stub frame before hitting a dart frame during iteration.
...
Fixes bug 6380625 which was another case when we had two stub frames before hitting the dart frame.
Review URL: https://chromiumcodereview.appspot.com//10173008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6920 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-25 01:15:28 +00:00
regis@google.com
d1d3235013
Modify 'movq reg, reg' encoding in 64-bit code.
...
Use 0x89 encoding (instead of 0x8B encoding), which is expected by gdb64
older than 7.3.1-gg5 when disassembling a function's prolog (movq rbp, rsp)
for proper unwinding of Dart frames (use --generate_gdb_symbols and -O0).
Review URL: https://chromiumcodereview.appspot.com//10052013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6422 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-11 18:13:09 +00:00
regis@google.com
344dcbde12
Print stop message.
...
Review URL: http://codereview.chromium.org//9128002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3124 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-10 00:32:51 +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