Lines Matching refs:label
184 * LOAD_ADDR: loads the address for (label) into (reg). Not safe for
186 * LOAD_ADDR_PC: Variant for loading to the PC; load the address of (label)
189 * a label address.
191 * Usage: For any label accessed, we require one (and only one) instance
192 * of LOAD_ADDR_GEN_DEF(label).
221 #define GLUE_LABEL_GUTS(label, tag) L_##label##_##tag##_glue
222 #define GLUE_LABEL(label, tag) GLUE_LABEL_GUTS(label, tag)
224 #define LOAD_ADDR(reg, label) \
225 movw reg, :lower16:(label##$non_lazy_ptr - (GLUE_LABEL(label, __LINE__) + PC_INC)) ; \
226 movt reg, :upper16:(label##$non_lazy_ptr - (GLUE_LABEL(label, __LINE__) + PC_INC)) ; \
227 GLUE_LABEL(label, __LINE__): ; \
232 * assembly; the non-thumb variant still needs to provide the glue label
240 #define LOAD_ADDR_PC(label) \
243 LOAD_ADDR(r0, label) ; \
248 #define LOAD_ADDR_PC(label) \
249 b EXT(label)
252 #define LOAD_ADDR_GEN_DEF(label) \
255 label##$non_lazy_ptr: ; \
256 .indirect_symbol EXT(label) ; \
262 #define LOAD_ADDR(reg, label) \
263 ldr reg, L_##label
266 #define LOAD_ADDR_PC(label) \
267 ldr pc, L_##label
269 #define LOAD_ADDR_PC(label) \
270 b EXT(label)
273 #define LOAD_ADDR_GEN_DEF(label) \
276 L_##label: ; \
277 .long EXT(label)
292 #define COND_EXTERN_BEQ(label) \
294 b EXT(label) ; \
297 #define COND_EXTERN_BLNE(label) \
299 bl EXT(label) ; \
302 #define COND_EXTERN_BLGT(label) \
304 bl EXT(label) ; \