⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 retmacro.s

📁 FIC8120方案的 StartCell_Driver
💻 S
字号:
;/***************************************************************************
;  Copyright ARM Limited 1998 - 2000.  All rights reserved.
;****************************************************************************
;
;   Generic aliases for RETURN to allow ARM/THUMB interworking
;
;	$Id: retmacro.s,v 1.1.1.1 2006/04/18 07:34:53 ivan Exp $
;
;****************************************************************************/

 IF :LNOT: :DEF: __retmacros
__retmacros	EQU	1

;standard return command with Thumb aware alternative
	MACRO
	RETURN 	$reg
  
  IF :DEF: THUMB_AWARE		; if interworking is required
	BX	$reg		; return and change state if required
  ELSE				; not Thumb aware
	MOV	pc, $reg	; just return
  ENDIF
	MEND


;Conditional return - NOTE: return register must be lr
	MACRO
	RETURN_COND	$cond
  
  IF :DEF: THUMB_AWARE		; if interworking is required
	BX$cond		lr	; return and change state if required
  ELSE				; not Thumb aware
	MOV$cond	pc, lr	; just return
  ENDIF
	MEND


;Conditional return to register _other_ than lr
	MACRO
	RETURN_COND_EXTEND	$cond, $reg
  
  IF :DEF: THUMB_AWARE		; if interworking is required
	BX$cond    $reg		; return and change state if required
  ELSE				; not Thumb aware
	MOV$cond   pc, $reg	; just return
  ENDIF
	MEND


; Return with a linear list of registers popped from the stack
	MACRO
	POP_RETURN	$rlist
  
  IF :DEF: THUMB_AWARE			; if interworking is required
	LDMFD	sp!, {$rlist, lr}	; restore registers 
	BX	lr                      ; return and change state if required
  ELSE					; not Thumb aware
	LDMFD	sp!, {$rlist, pc}	; restore registers 
  ENDIF
	MEND
	    

; Return with a _2_ linear lists of registers popped from the stack
	MACRO
	POP_RETURN_EXTEND	$rlist1, $rlist2
   
  IF :DEF: THUMB_AWARE				; if interworking is required
	LDMFD	sp!, {$rlist1, $rlist2, lr}	; restore registers 
	BX	lr				; & return
  ELSE						; not Thumb aware
	LDMFD	sp!, {$rlist1, $rlist2, pc}	; restore registers & return
  ENDIF
	MEND


 ENDIF

	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -