Frank Wu wrote:
I have a question about the mode switch macro, which I listed below, in vectors.S. What is ## mean in ldr _r_,=_l_ ## f ? Is f a constant or _f_? Thanks,Frank // Call thumb function from ARM mode, return to ARM // mode afterwards #define THUMB_CALL(_r_, _l_, _f_) \ ldr _r_,=_f_+1 ;\ mov lr,pc ;\ bx _r_ ;\ .pool ;\ .code 16 ;\ .thumb_func ;\ ldr _r_,=_l_ ## f ;\ bx _r_ ;\ .pool ;\ .code 32 ;\ _l_:
This is the standard C pre-processor concatenation operator. Thus in a call like THUMB_CALL(r1,10,func) that line gets turned into ldr r1,=10f which corresponds to the local label 10 defined a few lines later. -- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------ -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
