;/** @file\r
; Macros to work around lack of Apple support for LDR register, =expr\r
;\r
-; Copyright (c) 2009, Apple, Inc. All rights reserved.\r
+; Copyright (c) 2009, 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
+; http://opensource.org/licenses/bsd-license.php \r
+; \r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
;\r
;**/\r
\r
LoadConstantToRegMacro $Data, $Reg \r
ldr $Reg, =($Data) \r
MEND \r
+ \r
+ MACRO\r
+ GetCorePositionInStack $Pos, $MpId, $Tmp\r
+ lsr $Pos, $MpId, #6\r
+ and $Tmp, $MpId, #3\r
+ add $Pos, $Pos, $Tmp\r
+ MEND\r
+ \r
+ ; The reserved place must be 8-bytes aligned for pushing 64-bit variable on the stack\r
+ MACRO\r
+ SetPrimaryStack $StackTop, $GlobalSize, $Tmp\r
+ and $Tmp, $GlobalSize, #7\r
+ rsbne $Tmp, $Tmp, #8\r
+ add $GlobalSize, $GlobalSize, $Tmp\r
+ sub sp, $StackTop, $GlobalSize\r
+ MEND\r
\r
END\r