 ;

 EXPORT  init_unwindblock
 EXPORT  clean_pc

 AREA |C$$code|, CODE, READONLY

init_unwindblock
 STMIA    a1,{r4-r9}
 STR      fp,[a1,#&18]
 STR      sp,[a1,#&1c]
 TEQ      a2,a2
 MOVEQ    a2,lr
 TEQ      a1,a1
 TEQ      pc,pc             ; Z=1 if 32-bit mode, else Z=0
 BICNE    a2,a2,#&FC000003  ; 26-bit: just get the PC
 STR      a2,[a1,#&20]
 STR      sl,[a1,#&24]
 MOV      pc,lr

clean_pc
 TEQ      a1,a1
 TEQ      pc,pc             ; Z=1 if 32-bit mode, else Z=0
 BICNE    a1,a1,#&FC000003  ; 26-bit: just get the PC
 MOV      pc,lr

 END
