| www.delorie.com/gnu/docs/gcc/gccint_152.html | search |
![]() Buy the book! | |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This concerns dispatch tables.
ASM_OUTPUT_ADDR_DIFF_ELT (stream, body, value, rel)
ASM_OUTPUT_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 ASM_OUTPUT_INTERNAL_LABEL.
For example,
fprintf (stream, "\t.word L%d\n", value) |
ASM_OUTPUT_CASE_LABEL (stream, prefix, num, table)
ASM_OUTPUT_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
ASM_OUTPUT_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.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| webmaster donations bookstore | delorie software privacy |
| Copyright © 2003 by The Free Software Foundation | Updated Jun 2003 |