Commit Graph

184 Commits

Author SHA1 Message Date
zra@google.com 765960a56f Removes checks for stack overflow from arm and mips simulators
The checks were performed before runtime and native calls,
but if we abort on an assertion failure there, then we
never make it to the StackOverflow runtime call.

R=regis@google.com

Review URL: https://codereview.chromium.org//18704006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24979 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-12 23:06:27 +00:00
zra@google.com c2652c8bc4 Fixes bug in double to int conversion on arm.
R=regis@google.com

Review URL: https://codereview.chromium.org//18295007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24960 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-12 16:56:38 +00:00
regis@google.com 3711825476 Fix Random_nextState intrinsic on ARM.
R=zra@google.com

Review URL: https://codereview.chromium.org//18054006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24548 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-27 20:16:53 +00:00
zra@google.com 364c5406b8 Fixes floating point bug in ARM simulator.
Adjusts status files to match.

R=regis@google.com

Review URL: https://codereview.chromium.org//17742003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24473 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-26 15:48:22 +00:00
zra@google.com 8edda78ccc Enables more tests for SIMMIPS.
. Fixes register allocation bugs
. Implements float <-> double conversion in assembler and simulator.
. Fixes floating point argument passing for simarm and simmips,
  and floating point return for simarm, and adjusts tests to match.

R=regis@google.com

Review URL: https://codereview.chromium.org//17502002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24365 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 20:16:16 +00:00
zra@google.com 6ea08a30af Allows exception object to be null in simarm and simmips.
Also, updates status files.

R=regis@google.com

Review URL: https://codereview.chromium.org//17587015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24361 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 18:38:46 +00:00
regis@google.com 8f62a87598 Switch code generation on ARM from softfp ABI to hardfp ABI.
Support leaf float runtime calls in ARM simulator.
Enable previously failing tests.

R=zra@google.com

Review URL: https://codereview.chromium.org//16638012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23868 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-11 16:47:01 +00:00
regis@google.com 479c0427d9 Fix leaf floating point runtime calls on ARM (work still needed in simulator).
Various cleanups.

R=zra@google.com

Review URL: https://codereview.chromium.org//15945006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23506 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-31 23:51:38 +00:00
zra@google.com e5229295a0 Removes ARM mrc instruction.
It is a privileged instruction and was only being used in tests
running on the simulator.

R=regis@google.com

Review URL: https://codereview.chromium.org//16194010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23367 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-29 21:31:27 +00:00
zra@google.com 26fa41d1b1 Implements intrinsics for ARM.
R=regis@google.com

Review URL: https://codereview.chromium.org//15822008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23311 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-28 22:55:51 +00:00
regis@google.com ac2e804324 Fix a bug in optimized ARM code.
Fix a bug in deoptimization (wrong stack layout assumption, worked on Intel by
chance).
Implement megamorphic instance call on ARM.
Improve line number reporting in simulator backtraces.

R=zra@google.com

Review URL: https://codereview.chromium.org//15692005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23169 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-24 18:52:34 +00:00
srdjan@google.com d88e9adedf Fix broken Mac build.
Review URL: https://codereview.chromium.org//15412005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22974 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-22 00:06:18 +00:00
regis@google.com d7f7604cf0 Implement backtracing and toggling of execution tracing in ARM simulator.
R=zra@google.com

Review URL: https://codereview.chromium.org//14711013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22967 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-21 22:07:55 +00:00
zra@google.com fabc87d633 Fixes for integer division on ARM hardware so that assembler tests pass.
Now, all VM tests that pass on SIMARM, pass on ARM.

Also, more assertions in the ARM disassembler and simulator to
make sure that condition codes aren't used with bkpt.

R=regis@google.com

Review URL: https://codereview.chromium.org//14784011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22471 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-07 18:21:18 +00:00
regis@google.com ad6005e5c4 Support debugger API on ARM.
Support smull ARM instruction in order to detect 32-bit multiplication overflow.
Enable debugger api tests on ARM.
Enable isolate tests on ARM.
Enable code descriptors tests on ARM.
Enable snapshot tests on ARM.
Enable heap tests on ARM.

Review URL: https://codereview.chromium.org//13983016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21890 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-23 16:10:22 +00:00
iposva@google.com 539588333e - Reduce warnings about project settings in Xcode 4.
- Address compilation warnings found by clang.

Review URL: https://codereview.chromium.org//14084006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21786 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-22 05:31:03 +00:00
regis@google.com 48bb59325d Reset simulator top exit frame info when coming via long jump from a throw.
Thanks to Srdjan for reporting the crash on Mac.

Review URL: https://codereview.chromium.org//14141008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21695 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-18 19:30:26 +00:00
regis@google.com d79c7c1969 Implement long jump in ARM and MIPS simulators.
Implement error and exception handler stubs on ARM.
Hook up simulator for object tests.
Enable codegen and object tests on ARM.

Review URL: https://codereview.chromium.org//14309004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21680 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-18 16:23:25 +00:00
regis@google.com 05e2ba9540 Support FrameLookup vm test on ARM, requiring among other things:
Maintain a separate top_exit_frame_info for simulated frames and use it to
verify that longjumps are safe.
Make sure unwinding of scopes works in the presence of a simulator.
Support inline allocation of objects.
Support checking of inline cache and instance calls.
Support subtype test cache.
Support (some) equality checks.
Support for (some) conditional branches.
Support for pool pointer setup in stubs.
Review URL: https://codereview.chromium.org//13502002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20890 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-03 20:17:14 +00:00
zra@google.com f6da1febeb Drops into Simulator Debugger only in a session that is already interactive.
This change backs out an earlier change to the disassemblers that
made them return false if an instruction couldn't be decoded.
This was used in the simulator debuggers for arm and mips to avoid
executing an instruction that couldn't be decoded.

Instead, now when an unknown instruction is encountered in the simulator,
if the simulator is running interactively, we drop into
the debugger, and otherwise die. We detect that a simulator is
running interactively by setting a flag if we enter the debugger
for a user set break point.
Review URL: https://codereview.chromium.org//12903006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20394 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-22 18:11:05 +00:00
zra@google.com 7611d6f772 Fixes a build warning about a format string.
Review URL: https://codereview.chromium.org//12871004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20043 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-14 18:56:07 +00:00
zra@google.com 82367b380d Copies Simulator Debugger from ARM to MIPS.
Also includes changes to keep it from aborting unexpectedly.
Among other things, I changed the Disassembler::Disassemble to return false
when the underlying decoder can't decode an instruction. Then,
the MIPS SimulatorDebugger will refuse to step or cont on an instruction
that the Disassembler can't decode.
Review URL: https://codereview.chromium.org//12431016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19958 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-13 18:43:16 +00:00
regis@google.com 7766ac76d4 Implement leaf runtime call stub on ARM and corresponding call redirection
in ARM simulator.
Implement jump patching on ARM.
Add missing ICache flush calls.
Review URL: https://codereview.chromium.org//12439005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19724 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-08 21:16:46 +00:00
regis@google.com b95087eb73 Implement native call stub on ARM and native call redirection in ARM simulator.
Pass PatchStaticCall test.
Review URL: https://codereview.chromium.org//12629004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19704 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-08 18:22:14 +00:00
iposva@google.com f507e542de - Add a skeleton MIPS assembler, disassembler and simulator.
- Remove unused fields and methods from ARM simulator.
- Remove unused 5th parameter from Simulator::Call.
Review URL: https://codereview.chromium.org//12541003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19606 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-07 11:04:27 +00:00
zra@google.com 31da7d6c55 Adds muls, sdiv, udiv instructions to ARM simulator, assembler, disassembler
Review URL: https://codereview.chromium.org//12459005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19511 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-05 19:53:43 +00:00
zra@google.com c9c0881ac7 Adds mrc instruction to arm simulator, assembler, disassembler.
This instruction will be used to query an arm processor to
determine whether it supports the sdiv and udiv instructions.

Also adds a flag --sim_has_int_div to the arm simulator,
which changes the result of the mrc instruction so we can
test both ways.
Review URL: https://codereview.chromium.org//12378080

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19439 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-05 01:03:22 +00:00
regis@google.com a879bba2ff Second codegen test passing on ARM (simulated).
This required support on ARM for:
- compilation of static calls
- patching of static calls
- stub to call into runtime
- redirection support for calls from simulator to host runtime
- stack frame iteration
Review URL: https://codereview.chromium.org//12381034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19405 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-04 18:08:38 +00:00
zra@google.com 767b8ec8fc Adds vstm, vldm to ARM simulator, assembler, disassembler
Review URL: https://codereview.chromium.org//12390039

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19404 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-04 17:45:38 +00:00
regis@google.com 3b374ead4b Compile and simulate first dart function on arm generated from ast.
Review URL: https://codereview.chromium.org//12335102

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19152 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-27 17:13:51 +00:00
regis@google.com 5675b85979 Generate first ARM assembler test and execute (simulate) it.
RFC: First draft showing how generated ARM code accesses GC'ed objects and
accesses patched call targets.
Review URL: https://codereview.chromium.org//12224024

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18200 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-07 00:55:47 +00:00
srdjan@google.com 7c7d7ab461 Fix simarm and simmips builds.
Review URL: https://codereview.chromium.org//12094002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17677 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-26 00:33:20 +00:00
regis@google.com 4fb1508228 Fix Windows build by removing bad include.
Review URL: https://codereview.chromium.org//12039081

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17626 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-25 01:26:00 +00:00
regis@google.com cd746c8172 Initial revision of ARM simulator and (empty) MIPS simulator.
Review URL: https://codereview.chromium.org//12041056

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17623 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-25 01:16:35 +00:00