#------------------------------------------------------------------------------ \r
#\r
-# CpuSleep() for ARM\r
+# CpuSleep() for ARMv7\r
+#\r
+# ARMv6 versions was:\r
+# MOV r0,#0\r
+# MCR p15,0,r0,c7,c0,4 ;Wait for Interrupt instruction\r
+#\r
+# But this is a no-op on ARMv7\r
#\r
# Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>\r
# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
# );\r
#\r
ASM_PFX(CpuSleep):\r
- mov r0,#0\r
- mcr p15,0,r0,c7,c0,4 // Wait for Interrupt instruction\r
+ wfi\r
bx lr\r
;------------------------------------------------------------------------------ \r
;\r
-; CpuSleep() for ARM\r
+; CpuSleep() for ARMv7\r
+;\r
+; ARMv6 versions was:\r
+; MOV r0,#0\r
+; MCR p15,0,r0,c7,c0,4 ;Wait for Interrupt instruction\r
+;\r
+; But this is a no-op on ARMv7\r
;\r
; Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>\r
-; Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
+; Portions copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>\r
; This program and the accompanying materials\r
; are licensed and made available under the terms and conditions of the BSD License\r
; which accompanies this distribution. The full text of the license may be found at\r
; );\r
;\r
CpuSleep\r
- MOV r0,#0\r
- MCR p15,0,r0,c7,c0,4 ;Wait for Interrupt instruction\r
+ WFI\r
BX LR\r
\r
END\r