Index: runtime/vm/constants_arm.h |
=================================================================== |
--- runtime/vm/constants_arm.h (revision 42212) |
+++ runtime/vm/constants_arm.h (working copy) |
@@ -340,16 +340,12 @@ |
// Special Supervisor Call 24-bit codes used in the presence of the ARM |
-// simulator for redirection, breakpoints, stop messages, and spill markers. |
+// 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 |
-const uint32_t kSpillMarkerSvcBase = 0x9f0100; // unused ARM private syscall |
-const uint32_t kWordSpillMarkerSvcCode = kSpillMarkerSvcBase + 1; |
-const uint32_t kDWordSpillMarkerSvcCode = kSpillMarkerSvcBase + 2; |
- |
// 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 { |
@@ -450,13 +446,22 @@ |
static const int32_t kNopInstruction = // nop |
((AL << kConditionShift) | (0x32 << 20) | (0xf << 12)); |
- static const int32_t kBreakPointInstruction = // svc #kBreakpointSvcCode |
+ |
+ // Breakpoint instruction filling assembler code buffers in debug mode. |
+ static const int32_t kBreakPointInstruction = // bkpt(0xdeb0) |
+ ((AL << kConditionShift) | (0x12 << 20) | (0xdeb << 8) | (0x7 << 4)); |
+ |
+ // Breakpoint instruction used by the simulator. |
+ // Should be distinct from kBreakPointInstruction and from a typical user |
+ // breakpoint inserted in generated code for debugging, e.g. bkpt(0). |
+ static const int32_t kSimulatorBreakpointInstruction = |
+ // svc #kBreakpointSvcCode |
((AL << kConditionShift) | (0xf << 24) | kBreakpointSvcCode); |
- static const int kBreakPointInstructionSize = kInstrSize; |
- bool IsBreakPoint() { |
- return IsBkpt(); |
- } |
+ // Runtime call redirection instruction used by the simulator. |
+ static const int32_t kSimulatorRedirectInstruction = |
+ ((AL << kConditionShift) | (0xf << 24) | kRedirectionSvcCode); |
+ |
// Get the raw instruction bits. |
inline int32_t InstructionBits() const { |
return *reinterpret_cast<const int32_t*>(this); |