Index: runtime/vm/cpu_arm.cc |
=================================================================== |
--- runtime/vm/cpu_arm.cc (revision 39210) |
+++ runtime/vm/cpu_arm.cc (working copy) |
@@ -69,6 +69,7 @@ |
bool HostCPUFeatures::hardfp_supported_ = false; |
const char* HostCPUFeatures::hardware_ = NULL; |
ARMVersion HostCPUFeatures::arm_version_ = ARMvUnknown; |
+intptr_t HostCPUFeatures::store_pc_read_offset_ = 8; |
#if defined(DEBUG) |
bool HostCPUFeatures::initialized_ = false; |
#endif |
@@ -89,6 +90,10 @@ |
CpuInfo::FieldContains(kCpuInfoModel, "ARM926EJ-S")) { |
// Lego Mindstorm EV3. |
arm_version_ = ARMv5TE; |
+ // On ARMv5, the PC read offset in an STR or STM instruction is either 8 or |
+ // 12 bytes depending on the implementation. On the Mindstorm EV3 it is 12 |
+ // bytes. |
+ store_pc_read_offset_ = 12; |
} else if (CpuInfo::FieldContains(kCpuInfoProcessor, "ARMv6") || |
CpuInfo::FieldContains(kCpuInfoModel, "ARMv6")) { |
// Raspberry Pi, etc. |