armmacros.s
上传用户:qiulin1960
上传日期:2013-10-16
资源大小:2844k
文件大小:2k
源码类别:

Windows CE

开发平台:

Windows_Unix

  1. ;
  2. ; Copyright (c) Microsoft Corporation.  All rights reserved.
  3. ;
  4. ;
  5. ; Use of this source code is subject to the terms of the Microsoft end-user
  6. ; license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
  7. ; If you did not accept the terms of the EULA, you are not authorized to use
  8. ; this source code. For a copy of the EULA, please see the LICENSE.RTF on your
  9. ; install media.
  10. ;
  11. ;/***********************************************************************
  12. ;  Copyright (c) ARM Limited 1998.  All rights reserved.
  13. ;
  14. ; NOTE: The CALL and CALLEQ macros shouldn't be used in OS startup code
  15. ;       before the MMU is enabled since in the Thumbing case it relies
  16. ;       on an absolute address which will be virtual in the case of the
  17. ;       OS code and if the MMU isn't enabled, all branches should be
  18. ;       relative (or a computed physical address).
  19. ;
  20. ;***********************************************************************/
  21.   IF Thumbing
  22.     MACRO
  23.     CALL $Fn
  24.     ldr     r12, =$Fn
  25.     mov     lr, pc
  26.     bx      r12
  27.     MEND
  28.     MACRO
  29.     CALLEQ $Fn
  30.     ldreq   r12, =$Fn
  31.     moveq   lr, pc
  32.     bxeq    r12
  33.     MEND
  34.     MACRO
  35.     RETURN
  36.     bx      lr
  37.     MEND
  38.     MACRO
  39.     RETURN_EQ
  40.     bxeq    lr
  41.     MEND
  42.     MACRO
  43.     RETURN_NE
  44.     bxne    lr
  45.     MEND
  46.   ELSE
  47.     MACRO
  48.     CALL $Fn
  49.     bl      $Fn
  50.     MEND
  51.     MACRO
  52.     CALLEQ $Fn
  53.     bleq    $Fn
  54.     MEND
  55.     MACRO
  56.     RETURN
  57.     mov     pc, lr
  58.     MEND
  59.     MACRO
  60.     RETURN_EQ
  61.     moveq   pc, lr
  62.     MEND
  63.     MACRO
  64.     RETURN_NE
  65.     movne   pc, lr
  66.     MEND
  67.   ENDIF
  68.     END