-
RCS file: /usr1/CVS/rtems/c/src/lib/libbsp/arm/shared/start/start.S,v
retrieving revision 1.9
diff -u -p -r1.9 start.S
|
|
DEFINE_FUNCTION_ARM(bsp_start_memcpy) |
199 | 199 | |
200 | 200 | /* Return if dest == src */ |
201 | 201 | cmp r0, r1 |
| 202 | #ifdef __thumb__ |
202 | 203 | bxeq lr |
| 204 | #else |
| 205 | bne 1f |
| 206 | mov pc, lr |
| 207 | 1: |
| 208 | #endif |
203 | 209 | |
204 | 210 | /* Return if length is zero */ |
205 | 211 | mov r3, #0 |
206 | 212 | cmp r3, r2 |
| 213 | #ifdef __thumb__ |
207 | 214 | bxeq lr |
| 215 | #else |
| 216 | bne 1f |
| 217 | mov pc, lr |
| 218 | 1: |
| 219 | #endif |
| 220 | |
208 | 221 | |
209 | 222 | /* Save non-volatile registers */ |
210 | 223 | push {r4-r8, lr} |
… |
… |
DEFINE_FUNCTION_ARM(bsp_start_memcpy) |
218 | 231 | mov r3, #0 |
219 | 232 | mov ip, sp |
220 | 233 | mov lr, pc |
| 234 | #ifdef __thumb__ |
221 | 235 | bx ip |
| 236 | #else |
| 237 | mov pc, ip |
| 238 | #endif |
222 | 239 | |
223 | 240 | /* Restore stack and non-volatile registers */ |
224 | 241 | add sp, sp, #24 |
225 | 242 | pop {r4-r8, lr} |
226 | 243 | |
227 | 244 | /* Return */ |
| 245 | #ifdef __thumb__ |
228 | 246 | bx lr |
| 247 | #else |
| 248 | mov pc, lr |
| 249 | #endif |
229 | 250 | |
230 | 251 | bsp_start_memcpy_begin: |
231 | 252 | |
… |
… |
bsp_start_memcpy_begin: |
235 | 256 | add r3, r3, #4 |
236 | 257 | cmp r3, r2 |
237 | 258 | bcc bsp_start_memcpy_begin |
| 259 | #ifdef __thumb__ |
238 | 260 | bx lr |
| 261 | #else |
| 262 | mov pc, lr |
| 263 | #endif |
| 264 | |
-
RCS file: /usr1/CVS/rtems/cpukit/score/cpu/arm/arm_exc_abort.S,v
retrieving revision 1.4
diff -u -p -r1.4 arm_exc_abort.S
|
|
prefetch_abort_handler: |
51 | 51 | arm_exc_data_abort_set_handler: |
52 | 52 | ldr r1, =data_abort_handler |
53 | 53 | str r0, [r1] |
| 54 | #ifdef __thumb__ |
54 | 55 | bx lr |
| 56 | #else |
| 57 | mov pc, lr |
| 58 | #endif |
55 | 59 | |
56 | 60 | #ifdef __thumb__ |
57 | 61 | .thumb_func |
… |
… |
arm_exc_data_abort_set_handler: |
60 | 64 | arm_exc_prefetch_abort_set_handler: |
61 | 65 | ldr r1, =prefetch_abort_handler |
62 | 66 | str r0, [r1] |
| 67 | #ifdef __thumb__ |
63 | 68 | bx lr |
| 69 | #else |
| 70 | mov pc, lr |
| 71 | #endif |
64 | 72 | |
65 | 73 | .arm |
66 | 74 | |
… |
… |
save_more_context: |
103 | 111 | moveq r0, #0xaa |
104 | 112 | #ifndef __thumb__ |
105 | 113 | mov lr, pc |
106 | | bx r2 |
| 114 | bx pc, r2 |
107 | 115 | #else /* __thumb__ */ |
108 | 116 | SWITCH_FROM_ARM_TO_THUMB r1 |
109 | 117 | bl call_handler |
Download in other formats: