📄 vfpasm.lst
字号:
ARM macroassembler Page:1
1 00000000 ;
2 00000000 ; The content of this file or document is CONFIDENTIAL and PROPRIETARY
3 00000000 ; to Jade Technologies Co., Ltd. It is subjected to the terms of a
4 00000000 ; License Agreement between Licensee and Jade Technologies Co., Ltd.
5 00000000 ; restricting among other things, the use, reproduction, distribution
6 00000000 ; and transfer. Each of the embodiments, including this information
7 00000000 ; and any derivative work shall retain this copyright notice.
8 00000000 ;
9 00000000 ; Copyright (c) 2004 - 2005 Jade Technologies Co., Ltd.
10 00000000 ; All rights reserved.
11 00000000 ; ----------------------------------------------------------------
12 00000000 ; File: vfpasm.s,v
13 00000000 ; Revision: 1.0
14 00000000 ; ----------------------------------------------------------------
15 00000000 ; $
16 00000000
17 00000000 ;
18 00000000 ; This source code is licensed under Microsoft Shared Source License
19 00000000 ; Version 1.0 for Windows CE.
20 00000000 ; For a copy of the license visit http://go.microsoft.com/fwlink/?LinkId=3223.
21 00000000 ;
25 00000000 OPT 1 ; reenable listing
26 00000000
27 00000000 ;
28 00000000 ; nMaxRegs gives the number of OS allocated space for control registers.
29 00000000 ; currently it's defined to be 8. If we ever need more than that, we'll
30 00000000 ; need to allocate space ourselves to save extra registers.
31 00000000 ;
32 00000000 ; OS will save/restore the standard VFP5TE control registers (fpexc, and fpscr)
33 00000000 ; and will call into OAL to save/restore other implementation defined registers.
34 00000000 ; For VFP10, the only register needs to be saved is FPINST
35 00000000 ;
36 00000000
37 00000000 FPINST_REG EQU 0
38 00000000
39 00000000
40 00000000 ;----------------------------------------------------------------
41 00000000 ; BOOL CPUHasVFP (void);
42 00000000 ; ** NOTE: This is a place holder function, VFP is not supported
43 00000000 ; in this BSP
44 00000000 ;----------------------------------------------------------------
45 00000000 NESTED_ENTRY CPUHasVFP
141 00000000 FuncName SETS VBar:CC:"CPUHasVFP":CC:VBar
142 00000000 PrologName SETS VBar:CC:"CPUHasVFP":CC:"_Prolog":CC:VBar
143 00000000 FuncEndName SETS VBar:CC:"CPUHasVFP":CC:"_end":CC:VBar
144 00000000 LCLS ExceptBit
145 00000000 IF HaveExceptHandler
147 00000000 ELSE
148 00000000 ExceptBit SETS "0"
149 00000000 ENDIF
150 00000000
151 AREA |.pdata|,ALIGN=2,PDATA
152 00000000 00000000 DCD |CPUHasVFP|
153 00000004 40000200 DCD ((|CPUHasVFP_Prolog|-|CPUHasVFP|)/4) :OR: (((|CPUHasVFP_end|-|CPUHasVFP|)/4):SHL:8) :OR: 0x40000000 :OR: 0
154 AREA |.text|,CODE,READONLY
155 00000000 ALIGN 2
156 00000000 EXPORT |CPUHasVFP|
157 00000000 IF HaveExceptHandler
161 00000000 ENDIF
162 00000000 |CPUHasVFP|
163 00000000 ROUT
46 00000000 PROLOG_END
168 00000000 |CPUHasVFP_Prolog|
47 00000000
48 00000000 e3a00000 mov r0, #0
49 00000004
50 00000004 RETURN
44 00000004 e12fff1e bx lr
51 00000008 ENTRY_END CPUHasVFP
192 00000008 |CPUHasVFP_end|
52 00000008
53 00000008 ;----------------------------------------------------------------
54 00000008 ; void EnableVFP (void);
55 00000008 ; ** NOTE: This is a place holder function, VFP is not supported
56 00000008 ; in this BSP
57 00000008 ;----------------------------------------------------------------
58 00000008 NESTED_ENTRY EnableVFP
141 00000008 FuncName SETS VBar:CC:"EnableVFP":CC:VBar
142 00000008 PrologName SETS VBar:CC:"EnableVFP":CC:"_Prolog":CC:VBar
143 00000008 FuncEndName SETS VBar:CC:"EnableVFP":CC:"_end":CC:VBar
144 00000008 LCLS ExceptBit
145 00000008 IF HaveExceptHandler
147 00000008 ELSE
148 00000008 ExceptBit SETS "0"
149 00000008 ENDIF
150 00000008
151 AREA |.pdata|,ALIGN=2,PDATA
152 00000008 00000008 DCD |EnableVFP|
153 0000000c 40000100 DCD ((|EnableVFP_Prolog|-|EnableVFP|)/4) :OR: (((|EnableVFP_end|-|EnableVFP|)/4):SHL:8) :OR: 0x40000000 :OR: 0
154 AREA |.text|,CODE,READONLY
155 00000008 ALIGN 2
156 00000008 EXPORT |EnableVFP|
157 00000008 IF HaveExceptHandler
161 00000008 ENDIF
162 00000008 |EnableVFP|
163 00000008 ROUT
59 00000008 PROLOG_END
168 00000008 |EnableVFP_Prolog|
60 00000008
61 00000008 RETURN
44 00000008 e12fff1e bx lr
62 0000000c ENTRY_END CPUHasVFP
192 0000000c |EnableVFP_end|
63 0000000c
64 0000000c ;----------------------------------------------------------------
65 0000000c ; void VFP10SaveCtrlRegs (LPDWORD lpExtra, int nMaxRegs);
66 0000000c ;----------------------------------------------------------------
67 0000000c LEAF_ENTRY VFP10SaveCtrlRegs
173 0000000c FuncName SETS VBar:CC:"VFP10SaveCtrlRegs":CC:VBar
174 0000000c PrologName SETS "Invalid Prolog"
175 0000000c FuncEndName SETS VBar:CC:"VFP10SaveCtrlRegs":CC:"_end":CC:VBar
176 0000000c ALIGN 2
177 0000000c EXPORT |VFP10SaveCtrlRegs|
178 0000000c |VFP10SaveCtrlRegs|
179 0000000c ROUT
68 0000000c eef92a10 DCD 0xeef92a10 ; fmrx r2, fpinst
69 00000010 e5802000 str r2, [r0, #FPINST_REG]
70 00000014 RETURN
44 00000014 e12fff1e bx lr
71 00000018 ENTRY_END VFP10SaveCtrlRegs
192 00000018 |VFP10SaveCtrlRegs_end|
72 00000018
73 00000018 ;----------------------------------------------------------------
74 00000018 ; void VFP10RestoreCtrlRegs (LPDWORD lpExtra, int nMaxRegs);
75 00000018 ;----------------------------------------------------------------
76 00000018 LEAF_ENTRY VFP10RestoreCtrlRegs
173 00000018 FuncName SETS VBar:CC:"VFP10RestoreCtrlRegs":CC:VBar
174 00000018 PrologName SETS "Invalid Prolog"
175 00000018 FuncEndName SETS VBar:CC:"VFP10RestoreCtrlRegs":CC:"_end":CC:VBar
176 00000018 ALIGN 2
177 00000018 EXPORT |VFP10RestoreCtrlRegs|
178 00000018 |VFP10RestoreCtrlRegs|
179 00000018 ROUT
77 00000018 e5902000 ldr r2, [r0, #FPINST_REG]
78 0000001c eee92a10 DCD 0xeee92a10 ; fmxr fpinst, r2
79 00000020 RETURN
44 00000020 e12fff1e bx lr
80 00000024 ENTRY_END VFP10RestoreCtrlRegs
192 00000024 |VFP10RestoreCtrlRegs_end|
81 00000024
82 00000024
83 00000024 END
Assembly terminated, errors: 0, warnings: 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -