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