Changeset f14b925 in rtems for c/src/lib/libbsp/m68k/shared
- Timestamp:
- 07/01/02 22:21:52 (20 years ago)
- Branches:
- 4.10, 4.11, 4.8, 4.9, 5, master
- Children:
- 3a05d15
- Parents:
- 17083db
- Location:
- c/src/lib/libbsp/m68k/shared/gdbstub
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/lib/libbsp/m68k/shared/gdbstub/ChangeLog
r17083db rf14b925 1 2002-07-01 Joel Sherrill <joel@OARcorp.com> 2 3 * m68k-stub.c: Eliminated multi-line asm statements for gcc 3.x. 4 1 5 2002-06-25 Thomas Doerfler <Thomas.Doerfler@imd-systems.de> 2 6 -
c/src/lib/libbsp/m68k/shared/gdbstub/m68k-stub.c
r17083db rf14b925 263 263 */ 264 264 { 265 asm(" 266 .globl return_to_super 267 return_to_super: 268 move.l registers+60,%sp /* get new stack pointer */ 269 move.l lastFrame,%a0 /* get last frame info */ 270 bra return_to_any 271 272 .globl _return_to_user 273 return_to_user: 274 move.l registers+60,%a0 /* get usp */ 275 move.l %a0,%usp /* set usp */ 276 move.l superStack,%sp /* get original stack pointer */ 277 278 return_to_any: 279 move.l lastFrame,%a0 /* get last frame info */ 280 move.l (%a0)+,lastFrame /* link in previous frame */ 281 addq.l #8,%a0 /* skip over pc, vector#*/ 282 move.w (%a0)+,%d0 /* get # of words in cpu frame */ 283 add.w %d0,%a0 /* point to end of data */ 284 add.w %d0,%a0 /* point to end of data */ 285 move.l %a0,%a1 286 # 287 # copy the stack frame 288 subq.l #1,%d0 289 copyUserLoop: 290 move.w -(%a1),-(%sp) 291 dbf %d0,copyUserLoop 292 "); 293 RESTORE_FP_REGS() 265 asm("\n\ 266 .globl return_to_super \n\ 267 return_to_super: \n\ 268 move.l registers+60,%sp /* get new stack pointer */ \n\ 269 move.l lastFrame,%a0 /* get last frame info */ \n\ 270 bra return_to_any \n\ 271 \n\ 272 .globl _return_to_user \n\ 273 return_to_user: \n\ 274 move.l registers+60,%a0 /* get usp */ \n\ 275 move.l %a0,%usp /* set usp */ \n\ 276 move.l superStack,%sp /* get original stack pointer */ \n\ 277 \n\ 278 return_to_any: \n\ 279 move.l lastFrame,%a0 /* get last frame info */ \n\ 280 move.l (%a0)+,lastFrame /* link in previous frame */ \n\ 281 addq.l #8,%a0 /* skip over pc, vector#*/ \n\ 282 move.w (%a0)+,%d0 /* get # of words in cpu frame */ \n\ 283 add.w %d0,%a0 /* point to end of data */ \n\ 284 add.w %d0,%a0 /* point to end of data */ \n\ 285 move.l %a0,%a1 \n\ 286 # \n\ 287 # copy the stack frame \n\ 288 subq.l #1,%d0 \n\ 289 copyUserLoop: \n\ 290 move.w -(%a1),-(%sp) \n\ 291 dbf %d0,copyUserLoop \n\ 292 "); 293 RESTORE_FP_REGS() 294 294 asm(" movem.l registers,%d0-%d7/%a0-%a6"); 295 295 asm(" rte"); /* pop and go! */ … … 302 302 /* this interrupt and an rte is in order to return to the debugger. */ 303 303 /* For the 68000, the offset for sr is 6 due to the jsr return address */ 304 asm(" 305 .text 306 .globl _debug_level7 307 _debug_level7: 304 asm(" \n\ 305 .text \n\ 306 .globl _debug_level7 \n\ 307 _debug_level7: \n\ 308 308 move.w %d0,-(%sp)"); 309 309 #if M68K_HAS_VBR … … 312 312 asm(" move.w 6(%sp),%d0"); 313 313 #endif 314 asm(" andi.w #0x700,%d0 315 cmpi.w #0x700,%d0 316 beq already7 317 move.w (%sp)+,%d0 318 bra _catchException 319 already7: 314 asm(" andi.w #0x700,%d0 \n\ 315 cmpi.w #0x700,%d0 \n\ 316 beq already7 \n\ 317 move.w (%sp)+,%d0 \n\ 318 bra _catchException \n\ 319 already7: \n\ 320 320 move.w (%sp)+,%d0"); 321 321 #if !M68K_HAS_VBR … … 341 341 * 342 342 */ 343 asm(" 344 .text 345 .globl _catchException 343 asm(" \n\ 344 .text \n\ 345 .globl _catchException \n\ 346 346 _catchException:"); 347 347 DISABLE_INTERRUPTS(); 348 asm(" 349 movem.l %d0-%d7/%a0-%a6,registers /* save registers */ 350 move.l lastFrame,%a0 /* last frame pointer */ 348 asm(" \n\ 349 movem.l %d0-%d7/%a0-%a6,registers /* save registers */ \n\ 350 move.l lastFrame,%a0 /* last frame pointer */ \n\ 351 351 "); 352 352 SAVE_FP_REGS();
Note: See TracChangeset
for help on using the changeset viewer.