gccint: Data Output
1
1 18.20.2 Output of Data
1 ----------------------
1
1 -- Target Hook: const char * TARGET_ASM_BYTE_OP
1 -- Target Hook: const char * TARGET_ASM_ALIGNED_HI_OP
1 -- Target Hook: const char * TARGET_ASM_ALIGNED_SI_OP
1 -- Target Hook: const char * TARGET_ASM_ALIGNED_DI_OP
1 -- Target Hook: const char * TARGET_ASM_ALIGNED_TI_OP
1 -- Target Hook: const char * TARGET_ASM_UNALIGNED_HI_OP
1 -- Target Hook: const char * TARGET_ASM_UNALIGNED_SI_OP
1 -- Target Hook: const char * TARGET_ASM_UNALIGNED_DI_OP
1 -- Target Hook: const char * TARGET_ASM_UNALIGNED_TI_OP
1 These hooks specify assembly directives for creating certain kinds
1 of integer object. The 'TARGET_ASM_BYTE_OP' directive creates a
1 byte-sized object, the 'TARGET_ASM_ALIGNED_HI_OP' one creates an
1 aligned two-byte object, and so on. Any of the hooks may be
1 'NULL', indicating that no suitable directive is available.
1
1 The compiler will print these strings at the start of a new line,
1 followed immediately by the object's initial value. In most cases,
1 the string should contain a tab, a pseudo-op, and then another tab.
1
1 -- Target Hook: bool TARGET_ASM_INTEGER (rtx X, unsigned int SIZE, int
1 ALIGNED_P)
1 The 'assemble_integer' function uses this hook to output an integer
1 object. X is the object's value, SIZE is its size in bytes and
1 ALIGNED_P indicates whether it is aligned. The function should
1 return 'true' if it was able to output the object. If it returns
1 false, 'assemble_integer' will try to split the object into smaller
1 parts.
1
1 The default implementation of this hook will use the
1 'TARGET_ASM_BYTE_OP' family of strings, returning 'false' when the
1 relevant string is 'NULL'.
1
1 -- Target Hook: void TARGET_ASM_DECL_END (void)
1 Define this hook if the target assembler requires a special marker
1 to terminate an initialized variable declaration.
1
1 -- Target Hook: bool TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA (FILE *FILE,
1 rtx X)
1 A target hook to recognize RTX patterns that 'output_addr_const'
1 can't deal with, and output assembly code to FILE corresponding to
1 the pattern X. This may be used to allow machine-dependent
1 'UNSPEC's to appear within constants.
1
1 If target hook fails to recognize a pattern, it must return
1 'false', so that a standard error message is printed. If it prints
1 an error message itself, by calling, for example,
1 'output_operand_lossage', it may just return 'true'.
1
1 -- Macro: ASM_OUTPUT_ASCII (STREAM, PTR, LEN)
1 A C statement to output to the stdio stream STREAM an assembler
1 instruction to assemble a string constant containing the LEN bytes
1 at PTR. PTR will be a C expression of type 'char *' and LEN a C
1 expression of type 'int'.
1
1 If the assembler has a '.ascii' pseudo-op as found in the Berkeley
1 Unix assembler, do not define the macro 'ASM_OUTPUT_ASCII'.
1
1 -- Macro: ASM_OUTPUT_FDESC (STREAM, DECL, N)
1 A C statement to output word N of a function descriptor for DECL.
1 This must be defined if 'TARGET_VTABLE_USES_DESCRIPTORS' is
1 defined, and is otherwise unused.
1
1 -- Macro: CONSTANT_POOL_BEFORE_FUNCTION
1 You may define this macro as a C expression. You should define the
1 expression to have a nonzero value if GCC should output the
1 constant pool for a function before the code for the function, or a
1 zero value if GCC should output the constant pool after the
1 function. If you do not define this macro, the usual case, GCC
1 will output the constant pool before the function.
1
1 -- Macro: ASM_OUTPUT_POOL_PROLOGUE (FILE, FUNNAME, FUNDECL, SIZE)
1 A C statement to output assembler commands to define the start of
1 the constant pool for a function. FUNNAME is a string giving the
1 name of the function. Should the return type of the function be
1 required, it can be obtained via FUNDECL. SIZE is the size, in
1 bytes, of the constant pool that will be written immediately after
1 this call.
1
1 If no constant-pool prefix is required, the usual case, this macro
1 need not be defined.
1
1 -- Macro: ASM_OUTPUT_SPECIAL_POOL_ENTRY (FILE, X, MODE, ALIGN, LABELNO,
1 JUMPTO)
1 A C statement (with or without semicolon) to output a constant in
1 the constant pool, if it needs special treatment. (This macro need
1 not do anything for RTL expressions that can be output normally.)
1
1 The argument FILE is the standard I/O stream to output the
1 assembler code on. X is the RTL expression for the constant to
1 output, and MODE is the machine mode (in case X is a 'const_int').
1 ALIGN is the required alignment for the value X; you should output
1 an assembler directive to force this much alignment.
1
1 The argument LABELNO is a number to use in an internal label for
1 the address of this pool entry. The definition of this macro is
1 responsible for outputting the label definition at the proper
1 place. Here is how to do this:
1
1 (*targetm.asm_out.internal_label) (FILE, "LC", LABELNO);
1
1 When you output a pool entry specially, you should end with a
1 'goto' to the label JUMPTO. This will prevent the same pool entry
1 from being output a second time in the usual manner.
1
1 You need not define this macro if it would do nothing.
1
1 -- Macro: ASM_OUTPUT_POOL_EPILOGUE (FILE FUNNAME FUNDECL SIZE)
1 A C statement to output assembler commands to at the end of the
1 constant pool for a function. FUNNAME is a string giving the name
1 of the function. Should the return type of the function be
1 required, you can obtain it via FUNDECL. SIZE is the size, in
1 bytes, of the constant pool that GCC wrote immediately before this
1 call.
1
1 If no constant-pool epilogue is required, the usual case, you need
1 not define this macro.
1
1 -- Macro: IS_ASM_LOGICAL_LINE_SEPARATOR (C, STR)
1 Define this macro as a C expression which is nonzero if C is used
1 as a logical line separator by the assembler. STR points to the
1 position in the string where C was found; this can be used if a
1 line separator uses multiple characters.
1
1 If you do not define this macro, the default is that only the
1 character ';' is treated as a logical line separator.
1
1 -- Target Hook: const char * TARGET_ASM_OPEN_PAREN
1 -- Target Hook: const char * TARGET_ASM_CLOSE_PAREN
1 These target hooks are C string constants, describing the syntax in
1 the assembler for grouping arithmetic expressions. If not
1 overridden, they default to normal parentheses, which is correct
1 for most assemblers.
1
1 These macros are provided by 'real.h' for writing the definitions of
1 'ASM_OUTPUT_DOUBLE' and the like:
1
1 -- Macro: REAL_VALUE_TO_TARGET_SINGLE (X, L)
1 -- Macro: REAL_VALUE_TO_TARGET_DOUBLE (X, L)
1 -- Macro: REAL_VALUE_TO_TARGET_LONG_DOUBLE (X, L)
1 -- Macro: REAL_VALUE_TO_TARGET_DECIMAL32 (X, L)
1 -- Macro: REAL_VALUE_TO_TARGET_DECIMAL64 (X, L)
1 -- Macro: REAL_VALUE_TO_TARGET_DECIMAL128 (X, L)
1 These translate X, of type 'REAL_VALUE_TYPE', to the target's
1 floating point representation, and store its bit pattern in the
1 variable L. For 'REAL_VALUE_TO_TARGET_SINGLE' and
1 'REAL_VALUE_TO_TARGET_DECIMAL32', this variable should be a simple
1 'long int'. For the others, it should be an array of 'long int'.
1 The number of elements in this array is determined by the size of
1 the desired target floating point data type: 32 bits of it go in
1 each 'long int' array element. Each array element holds 32 bits of
1 the result, even if 'long int' is wider than 32 bits on the host
1 machine.
1
1 The array element values are designed so that you can print them
1 out using 'fprintf' in the order they should appear in the target
1 machine's memory.
1