Node:Dispatch Tables, Next:Exception Region Output, Previous:Instruction Output, Up:Assembler Format
This concerns dispatch tables.
ASM_OUTPUT_ADDR_DIFF_ELT (
stream,
body,
value,
rel)
(*targetm.asm_out.internal_label)
, and they must be printed in the same
way here. For example,
fprintf (stream, "\t.word L%d-L%d\n", value, rel)
You must provide this macro on machines where the addresses in a
dispatch table are relative to the table's own address. If defined, GCC
will also use this macro on all machines when producing PIC.
body is the body of the ADDR_DIFF_VEC
; it is provided so that the
mode and flags can be read.
ASM_OUTPUT_ADDR_VEC_ELT (
stream,
value)
The definition should be a C statement to output to the stdio stream
stream an assembler pseudo-instruction to generate a reference to
a label. value is the number of an internal label whose
definition is output using (*targetm.asm_out.internal_label)
.
For example,
fprintf (stream, "\t.word L%d\n", value)
ASM_OUTPUT_CASE_LABEL (
stream,
prefix,
num,
table)
(*targetm.asm_out.internal_label)
; the fourth argument is the
jump-table which follows (a jump_insn
containing an
addr_vec
or addr_diff_vec
).
This feature is used on system V to output a swbeg
statement
for the table.
If this macro is not defined, these labels are output with
(*targetm.asm_out.internal_label)
.
ASM_OUTPUT_CASE_END (
stream,
num,
table)
If this macro is not defined, nothing special is output at the end of the jump-table.