When reserving register for speed these sometime gets trashed…

CMAKE_C_FLAGS ” -mint-register=2″
CMAKE_C_FLAGS ” -msmall-data-limit=512″

The isr looks like:

0000009b:   pushm   r1-r5
0000009d:   mov.l   #0x6500, r4
000000a3:   mov.l   [r4], r2
000000a5:   mov.b   40997[r13], r1
000000a9:   mov.l   #0x6300, r3
000000af:   mov.l   7360[r11], r11
000000b3:   mov.w   [r11], [r3]
000000b5:   add     #4, r2, r3
000000b8:   mov.b   r1, [r2]
000000ba:   bclr    #8, r3
000000bc:   mov.l   r3, [r4]
000000be:   bset    #4, 29206[r13].b
000000c2:   popm    r1-r5
000000c4:   rtfi

r11 is used as gp gets overwritten.

The same can happen with r10 I’ve noted…

Bug or feature?


Open Source Tools Support answered