Notice: We have migrated to GitLab launching 2024-05-01 see here: https://gitlab.rtems.org/

Ticket #1719: rtems-arm-thumb.diff

File rtems-arm-thumb.diff, 2.2 KB (added by Gedare Bloom, on 11/20/10 at 16:57:38)

patch

  • c/src/lib/libbsp/arm/shared/start/start.S

    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) 
    199199
    200200        /* Return if dest == src */
    201201        cmp     r0, r1
     202  #ifdef __thumb__
    202203        bxeq    lr
     204  #else
     205  bne 1f
     206  mov pc, lr
     207  1:
     208  #endif
    203209
    204210        /* Return if length is zero */
    205211        mov     r3, #0
    206212        cmp     r3, r2
     213  #ifdef __thumb__
    207214        bxeq    lr
     215  #else
     216  bne 1f
     217  mov pc, lr
     218  1:
     219  #endif
     220
    208221
    209222        /* Save non-volatile registers */
    210223        push    {r4-r8, lr}
    DEFINE_FUNCTION_ARM(bsp_start_memcpy) 
    218231        mov     r3, #0
    219232        mov     ip, sp
    220233        mov     lr, pc
     234  #ifdef __thumb__
    221235        bx      ip
     236  #else
     237  mov pc, ip
     238  #endif
    222239
    223240        /* Restore stack and non-volatile registers */
    224241        add     sp, sp, #24
    225242        pop     {r4-r8, lr}
    226243
    227244        /* Return */
     245  #ifdef __thumb__
    228246        bx      lr
     247  #else
     248  mov pc, lr
     249  #endif
    229250
    230251bsp_start_memcpy_begin:
    231252
    bsp_start_memcpy_begin: 
    235256        add     r3, r3, #4
    236257        cmp     r3, r2
    237258        bcc     bsp_start_memcpy_begin
     259  #ifdef __thumb__
    238260        bx      lr
     261  #else
     262  mov pc, lr
     263  #endif
     264
  • cpukit/score/cpu/arm/arm_exc_abort.S

    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: 
    5151arm_exc_data_abort_set_handler:
    5252        ldr     r1, =data_abort_handler
    5353        str     r0, [r1]
     54  #ifdef __thumb__
    5455        bx      lr
     56  #else
     57  mov pc, lr
     58  #endif
    5559
    5660#ifdef __thumb__
    5761        .thumb_func
    arm_exc_data_abort_set_handler: 
    6064arm_exc_prefetch_abort_set_handler:
    6165        ldr     r1, =prefetch_abort_handler
    6266        str     r0, [r1]
     67  #ifdef __thumb__
    6368        bx      lr
     69  #else
     70  mov pc, lr
     71  #endif
    6472
    6573.arm
    6674
    save_more_context: 
    103111        moveq   r0, #0xaa
    104112#ifndef __thumb__
    105113        mov     lr, pc
    106         bx      r2
     114        bx      pc, r2
    107115#else /* __thumb__ */
    108116        SWITCH_FROM_ARM_TO_THUMB        r1
    109117        bl      call_handler