.ifdef PIC
.macro lao r a i
ldr \r,\a\()__o\i
.endm
.macro otoa r a i
\a\()__u\i:
add \r,\r,pc
.endm
.macro ldo rd ra a i
\a\()__u\i:
ldr \rd,[pc,\ra]
.endm
.macro ldosb rd ra a i
\a\()__u\i:
ldrsb \rd,[pc,\ra]
.endm
.macro sto rd ra a i
\a\()__u\i:
str \rd,[pc,\ra]
.endm
.macro stob rd ra a i
\a\()__u\i:
strb \rd,[pc,\ra]
.endm
.macro lto a i
\a\()__o\i:
.long \a\()-(\a\()__u\i\()+8)
.endm
.macro laol r a l i
ldr \r,\l\()__o\i
.endm
.macro ltol a l i
\l\()__o\i:
.long \a\()-(\l\()__u\i\()+8)
.endm
.else
.macro lao r a i
ldr \r,=\a
.endm
.macro otoa r a i
.endm
.macro ldo rd ra a i
ldr \rd,[\ra]
.endm
.macro ldosb rd ra a i
ldrsb \rd,[\ra]
.endm
.macro sto rd ra a i
str \rd,[\ra]
.endm
.macro stob rd ra a i
strb \rd,[\ra]
.endm
.macro laol r a l i
ldr \r,=\a
.endm
.endif