Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1041)

Unified Diff: runtime/vm/constants_arm.h

Issue 1097413004: Use a breakpoint instruction for a stop message on arm instead of (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/assembler_arm64.cc ('k') | runtime/vm/constants_arm64.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/constants_arm.h
===================================================================
--- runtime/vm/constants_arm.h (revision 45360)
+++ runtime/vm/constants_arm.h (working copy)
@@ -339,13 +339,6 @@
};
-// Special Supervisor Call 24-bit codes used in the presence of the ARM
-// simulator for redirection, breakpoints, and stop messages.
-// See /usr/include/asm/unistd.h
-const uint32_t kRedirectionSvcCode = 0x90001f; // unused syscall, was sys_stty
-const uint32_t kBreakpointSvcCode = 0x900020; // unused syscall, was sys_gtty
-const uint32_t kStopMessageSvcCode = 0x9f0001; // __ARM_NR_breakpoint
-
// Constants used for the decoding or encoding of the individual fields of
// instructions. Based on the "Figure 3-1 ARM instruction set summary".
enum InstructionFields {
@@ -447,6 +440,11 @@
static const int32_t kNopInstruction = // nop
((AL << kConditionShift) | (0x32 << 20) | (0xf << 12));
+ static const int32_t kBreakPointCode = 0xdeb0; // For breakpoint.
+ static const int32_t kStopMessageCode = 0xdeb1; // For Stop(message).
+ static const int32_t kSimulatorBreakCode = 0xdeb2; // For breakpoint in sim.
+ static const int32_t kSimulatorRedirectCode = 0xca11; // For redirection.
+
// Breakpoint instruction filling assembler code buffers in debug mode.
static const int32_t kBreakPointInstruction = // bkpt(0xdeb0)
((AL << kConditionShift) | (0x12 << 20) | (0xdeb << 8) | (0x7 << 4));
@@ -456,11 +454,11 @@
// breakpoint inserted in generated code for debugging, e.g. bkpt(0).
static const int32_t kSimulatorBreakpointInstruction =
// svc #kBreakpointSvcCode
- ((AL << kConditionShift) | (0xf << 24) | kBreakpointSvcCode);
+ ((AL << kConditionShift) | (0xf << 24) | kSimulatorBreakCode);
// Runtime call redirection instruction used by the simulator.
static const int32_t kSimulatorRedirectInstruction =
- ((AL << kConditionShift) | (0xf << 24) | kRedirectionSvcCode);
+ ((AL << kConditionShift) | (0xf << 24) | kSimulatorRedirectCode);
// Get the raw instruction bits.
inline int32_t InstructionBits() const {
« no previous file with comments | « runtime/vm/assembler_arm64.cc ('k') | runtime/vm/constants_arm64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698