Changeset 47a61aa1 in rtems
- Timestamp:
- 10/07/11 14:35:03 (11 years ago)
- Branches:
- 4.11, 5, master
- Children:
- 764e0a75
- Parents:
- 8f582bc
- Location:
- c/src/lib/libbsp/sparc
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/lib/libbsp/sparc/ChangeLog
r8f582bc r47a61aa1 1 2011-10-07 Daniel Hellstrom <daniel@gaisler.com> 2 3 PR 1933/cpukit 4 * shared/irq_asm.S: From code inspection I have found the following 5 issues (most SMP), and some improvements in irq_asm.S. I would need a 6 long test with interrupts to verify the interrupt handler better, 7 however I can not see that these patches hurt. Please see comment per 8 hunk below, One should go through the file to indent delay-slots 9 correctly, I have fixed some in the patch areas. An extra space is 10 added in front of delay slots to indicate a delay slot. 11 1 12 2011-07-28 Jennifer Averett <Jennifer.Averett@OARcorp.com> 2 13 -
c/src/lib/libbsp/sparc/shared/irq_asm.S
r8f582bc r47a61aa1 268 268 #endif 269 269 ld [%l5], %l5 /* l5 = pointer to per CPU */ 270 nop271 nop272 270 273 271 /* … … 278 276 * outermost interrupt, then we need to switch stacks. 279 277 */ 280 mov %sp, %fp281 278 call SYM(_ISR_SMP_Enter), 0 282 nop! delay slot279 mov %sp, %fp ! delay slot 283 280 cmp %o0, 0 284 281 #else … … 322 319 * Do we need to switch to the interrupt stack? 323 320 */ 324 b nzdont_switch_stacks ! No, then do not switch stacks325 ld[%l5 + PER_CPU_INTERRUPT_STACK_HIGH], %sp321 beq,a dont_switch_stacks ! No, then do not switch stacks 322 ld [%l5 + PER_CPU_INTERRUPT_STACK_HIGH], %sp 326 323 327 324 dont_switch_stacks: … … 359 356 cmp %o0, 0 360 357 bz simple_return 358 nop 361 359 #else 362 360 !sethi %hi(SYM(_Thread_Dispatch_disable_level)), %l4 … … 406 404 orcc %l7, %g0, %g0 ! Is this thread already doing an ISR? 407 405 bnz simple_return ! Yes, then do a "simple" exit 408 nop406 nop 409 407 410 408 /* … … 414 412 415 413 ldub [%l5 + PER_CPU_DISPATCH_NEEDED], %l5 416 nop417 nop418 419 414 orcc %l5, %g0, %g0 ! Is thread switch necessary? 420 415 bz simple_return ! No, then return 416 nop 421 417 #endif 422 418 /* … … 480 476 #endif 481 477 ld [%l5], %l5 /* l5 = pointer to per CPU */ 482 nop483 nop484 478 #else 485 479 sethi %hi(_Per_CPU_Information), %l5 … … 487 481 #endif 488 482 ldub [%l5 + PER_CPU_DISPATCH_NEEDED], %l5 489 nop490 nop491 492 483 orcc %l5, %g0, %g0 ! Is thread switch necessary? 493 484 bz allow_nest_again
Note: See TracChangeset
for help on using the changeset viewer.