Zachary Anderson
a1bcf051d8
clang-format runtime/vm
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/2481873005 .
2016-11-08 13:54:47 -08:00
Ryan Macnak
40e9cd5c76
Disassembler: use the register names we generally use with our assembler.
...
R=fschneider@google.com
Review URL: https://codereview.chromium.org/2359313002 .
2016-09-22 16:49:08 -07:00
Ryan Macnak
883f25ff08
Use the Code's pointer offsets to find object references when disassembling IA32.
...
Attempt to de-flake language/disassemble_test by removing a heap walk.
R=fschneider@google.com
Review URL: https://codereview.chromium.org/2160343003 .
2016-07-19 17:25:36 -07:00
Ryan Macnak
cb210e3997
Enable concurrent sweep on MIPS and ARM64.
...
Compare ARM from commit f78517a5ba .
Closes #25651 .
R=zra@google.com
Review URL: https://codereview.chromium.org/1722013002 .
2016-02-29 09:23:25 -08:00
John McCutchan
e2e7af1229
Remove more feature in product mode
...
- Remove Timeline.
- Remove more vmservice code.
- Remove AST printing.
- Remove IL printing.
- Remove profiler.
- Remove thread interrupter.
- Remove disassembler.
- Remove Library::CheckFunctionFingerprints.
- Update test status files for product mode.
Size of dart_bootstrap before: 5287631
Size of dart_bootstrap after: 5112783
Reduction in size: 174848 bytes.
Total reduction in size (382734 + 174848): 557582 bytes.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1678203002 .
2016-02-09 08:45:32 -08:00
Ryan Macnak
91bc8005fe
Don't touch x18 on ARM64 - it is globally reserved on iOS.
...
Move SP on ARM64 to x19.
Use a mask instead of a range for determining the globally blocked registers.
R=regis@google.com
Review URL: https://codereview.chromium.org/1417433002 .
2015-10-19 14:17:07 -07:00
regis@google.com
8d26ed95e6
Implement Smi_bitLength intrinsic on mips, arm, and arm64.
...
Add support for clz instruction in arm64 assembler, disassembler, and simulator.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//1124173002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45564 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-06 13:56:08 +00:00
regis@google.com
2e2bcf6149
Use a breakpoint instruction for a stop message on arm instead of
...
a svc instruction (or hlt instruction on arm64).
The instructions svc and hlt are used in conjunction with a simulator only.
At least, gdb now stops on armv5te when hitting a stop message (no prompt).
Add support for printing stop message in disassembly on mips and arm64.
Clean up various bkpt codes on arm (now similar to arm64 and mips).
R=zra@google.com
Review URL: https://codereview.chromium.org//1097413004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45363 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-22 20:45:52 +00:00
asiva@google.com
58c14696fb
Fix a windows build issue
...
../../dart/runtime/vm/flags.cc:58:26: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
OS::Print("%s: %"Pu64" (%s)\n", name_, *this->uint64_ptr_, comment_);
R=regis@google.com
Review URL: https://codereview.chromium.org//909253002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43669 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-10 21:30:28 +00:00
regis@google.com
ad8b021182
Process two 32-bit digits as one 64-bit digit in all bigint intrinsics on ARM64.
...
R=zra@google.com
Review URL: https://codereview.chromium.org//817583003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42611 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-05 20:46:48 +00:00
srdjan@google.com
4c8545557a
Add inlining ranges/intervals to code objects so that we can map a pc to the inlined stack. The mapping is not fast, used only for disassembly.
...
Copied from other CL: https://codereview.chromium.org/790213004/
Review URL: https://codereview.chromium.org//817823002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42522 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-19 20:03:27 +00:00
regis@google.com
0fb9f43f32
Complete and clean up breakpoint support in all 3 debuggers embedded in MIPS,
...
ARM, and ARM64 simulators.
Implement the same debugging commands in all 3 simulators: stop_sim_at flag, bt,
p icount, break, del, unstop, etc...
R=zra@google.com
Review URL: https://codereview.chromium.org//789903002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42216 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-09 19:26:26 +00:00
regis@google.com
6a2f5e6297
Implement bigint intrinsics on arm64.
...
Implement umaddl arm64 instruction (assembler, disassembler, simulator, tests).
Finish implementing cbz and cbnz arm64 instructions (assembler, tests).
R=zra@google.com
Review URL: https://codereview.chromium.org//701233003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41608 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-07 17:19:44 +00:00
johnmccutchan@google.com
7bbdfc2e16
- Use UnboxedInt32 and UnboxedUint32 representation for LoadIndexedInstr
...
- Avoid inserting an check class instruction for Uint32 and Int32 arrays on StoreIndexedInstr
- Implement Int32ToDouble on all architectures
- Add Int32 to double instruction to ARM64 and simulator.
- Add Int32 to double instruction to X64.
R=vegorov@google.com , zra@google.com
Review URL: https://codereview.chromium.org//616873003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41025 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-09 20:49:15 +00:00
regis@google.com
1026872687
Fix 32-bit and 64-bit carry out calculation in arm64 simulator.
...
Add support for 32-bit and 64-bit addition/subtraction with carry on simarm64.
Add assembler tests.
R=zra@google.com
Review URL: https://codereview.chromium.org//630093004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40989 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-08 07:22:06 +00:00
zra@google.com
fb29f5e342
Adds ldp and stp instructions to ARM64.
...
These should be used instead of single
register load and store on frame entry
and exit. I'll update these in another
change.
R=regis@google.com
Review URL: https://codereview.chromium.org//630033003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40960 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-07 16:25:56 +00:00
zra@google.com
436a06a381
Fixes to run "Hello, world!" on arm64 hardware.
...
Primarily, in Dart code, instead of using R31 as our
stack pointer, on entry we copy it into a second
register (R18) and use that as our stack pointer after
moving R31 to the Dart stack limit. On calling back
into C++ from Dart code, R31 is restored, and R18 is
cached in the callee-saved register R26.
R=regis@google.com
Review URL: https://codereview.chromium.org//311903004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36930 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-03 18:38:28 +00:00
regis@google.com
34dc2dce7a
Reduce register pressure on ARM, ARM64, and MIPS.
...
R=zra@google.com
Review URL: https://codereview.chromium.org//300003015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36764 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-28 20:35:02 +00:00
zra@google.com
6143dd9bad
Adds more ARM64 SIMD instructions.
...
Also, enables simd inlining for arm64.
R=regis@google.com
Review URL: https://codereview.chromium.org//307523002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36694 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-27 16:29:15 +00:00
iposva@google.com
d36cd610cb
- Use isolate where it is appropriate.
...
- Do not emit an name for ExternalLabel.
R=johnmccutchan@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//306483005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36662 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-27 10:15:50 +00:00
zra@google.com
0676e14a22
Adds more SIMD instructions to arm64.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//295243005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36585 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-23 20:34:29 +00:00
zra@google.com
35d53f5a45
Beings adding SIMD support to arm64.
...
It's still disabled for now, while I continue working.
Also, I tried to use const a bit more consistently in
the arm and arm64 IL.
R=regis@google.com
Review URL: https://codereview.chromium.org//293993013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36465 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-22 00:17:33 +00:00
zra@google.com
eb11b8a7a0
Adds far-branches to arm64.
...
Also fixes bugs and enables tests.
R=regis@google.com
Review URL: https://codereview.chromium.org//283513002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36051 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-12 18:43:08 +00:00
zra@google.com
5d94e8900f
Adds single-precision and SIMD load/store to arm64.
...
Also adds conversion between double an single-precision floats.
R=regis@google.com
Review URL: https://codereview.chromium.org//269343010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35933 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-08 19:06:04 +00:00
zra@google.com
842a42a5a9
Adds unary double operations to ARM64, enables many tests.
...
Also removes disabling of optimization.
R=regis@google.com
Review URL: https://codereview.chromium.org//267283004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35863 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-07 20:04:05 +00:00
zra@google.com
65946f752c
Adds arm64 double arithmetic instructions.
...
Also adds:
- double comparison instructions,
- conditional increment instruction,
- double <-> int conversion instructions,
- IL instructions that use these,
- NoSuchMethod call stub,
- and bug fixes.
R=regis@google.com
Review URL: https://codereview.chromium.org//262333007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35830 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-06 20:50:44 +00:00
zra@google.com
037a72e059
Enables many language tests for arm64.
...
- Adds msub and smulh instructions for implementing
BinarySmiOp.
- Adds fmovdd to move doubles between V registers.
- Implements many stubs and IL instructions. These are
ported from ARM with small fix-ups. Deopt code comes
from x64 because the stack frame layout is the same.
R=regis@google.com
Review URL: https://codereview.chromium.org//263243002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35753 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-05 18:09:08 +00:00
zra@google.com
b3425abdf2
Uses double load/store on arm64, enables tests.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//262793006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35705 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-02 20:16:22 +00:00
zra@google.com
568f467c74
Adds double load and store to arm64.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//264943007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35672 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-02 00:16:02 +00:00
zra@google.com
5be8150a3a
Begins work on arm64 floating point instructions.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//261783005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35661 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-01 21:50:17 +00:00
zra@google.com
2dee7e5a6d
Enables all startup code for arm64.
...
Also, enables a few more codegen tests, and adds
a conditional move instruction.
R=regis@google.com
Review URL: https://codereview.chromium.org//253623003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35440 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-25 18:54:46 +00:00
zra@google.com
76dfb827cb
Adds load/store from signed, unscaled, 9-bit offset w/ no writeback to arm64.
...
I missed this before because it was in the docs under the assembler mnemonic ldur.
R=regis@google.com
Review URL: https://codereview.chromium.org//242983006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35222 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-21 20:30:27 +00:00
zra@google.com
fde6c7a829
Adds Runtime call stub and Dart entry stub to ARM64.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//243773002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35190 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-18 23:43:15 +00:00
zra@google.com
25d93a82e2
Adds simulator debugger and Stop to arm64.
...
Also replaces UNIMPLEMENTED in stubs with Stop so
we can enable generation.
R=regis@google.com
Review URL: https://codereview.chromium.org//240283005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35127 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-16 19:57:52 +00:00
zra@google.com
d128fb91ae
Adds object pool, LoadImmediate, and LoadObject to ARM64.
...
Also enables many object tests.
R=regis@google.com
Review URL: https://codereview.chromium.org//239303008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35109 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-16 15:48:33 +00:00
zra@google.com
1c03aa73a8
Adds more arithmetic ops to arm64.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//236173002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35024 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-14 17:03:04 +00:00
zra@google.com
3a21a88e52
Adds comparisons, labels, branches.
...
Also adds compare-and-branch, test-and-branch, and
unconditional branch with 26-bit offset instrucitons
to the disassembler and simulator, but not to the
assembler, yet, since they'll require a bit more
work and this CL is getting big.
R=regis@google.com
Review URL: https://codereview.chromium.org//235363005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34993 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-11 20:40:11 +00:00
zra@google.com
11434b57aa
Adds logical operations to arm64.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//231373003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34901 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-09 22:14:47 +00:00
srdjan@google.com
42ddbe7ff0
Fix simarm64 build on Mac OS X
...
Review URL: https://codereview.chromium.org//229383006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34856 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 23:58:23 +00:00
zra@google.com
5ed6eb4cb4
Adds ldr and str to arm64.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//227593012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34831 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 15:43:16 +00:00
zra@google.com
dcc2284689
Adds subract, move wide immediate instructions to ARM64.
...
Also adds tests for move, add shift, add extended.
R=regis@google.com
Review URL: https://codereview.chromium.org//214233006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34715 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-03 18:26:11 +00:00
zra@google.com
2fe51715e5
Begins work on ARM64, first assembler test.
...
Most new code is in constants_arm64.h and
{assembler,disassembler,simulator}_arm64.{h,cc}
The rest of the CL just #def's out tests, modifies status files,
and adds UNIMPLEMENTED functions, etc.
R=regis@google.com
Review URL: https://codereview.chromium.org//221133002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34654 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-02 17:39:32 +00:00