FreeBSD/contrib/gcc/varasm.c
/* Create a symbol with label LABEL and place it at byte offset
   OFFSET in BLOCK.  OFFSET can be negative if the symbol's offset
   is not yet known.  LABEL must be a garbage-collected string.  */
Create a symbol with label LABEL and place it at byte offset
OFFSET in BLOCK.  OFFSET can be negative if the symbol's offset
is not yet known.  LABEL must be a garbage-collected string.
Create a symbol with label LABEL and place it at byte offset OFFSET in BLOCK . OFFSET can be negative if the symbol ' s offset is not yet known . LABEL must be a garbage - collected string .
static rtx
create_block_symbol (const char *label, struct object_block *block,
		     HOST_WIDE_INT offset)
{
  rtx symbol;
  unsigned int size;
  size = RTX_HDR_SIZE + sizeof (struct block_symbol);
  symbol = ggc_alloc_zone (size, &rtl_zone);
  memset (symbol, 0, size);
  PUT_CODE (symbol, SYMBOL_REF);
  PUT_MODE (symbol, Pmode);
  XSTR (symbol, 0) = label;
  SYMBOL_REF_FLAGS (symbol) = SYMBOL_FLAG_HAS_BLOCK_INFO;
  SYMBOL_REF_BLOCK (symbol) = block;
  SYMBOL_REF_BLOCK_OFFSET (symbol) = offset;
  return symbol;
}
static rtx create_block_symbol ( const char * label , struct object_block * block , HOST_WIDE_INT offset ) { rtx symbol ; unsigned int size ; size = RTX_HDR_SIZE + sizeof ( struct block_symbol ) ; symbol = ggc_alloc_zone ( size , & rtl_zone ) ; memset ( symbol , 0 , size ) ; PUT_CODE ( symbol , SYMBOL_REF ) ; PUT_MODE ( symbol , Pmode ) ; XSTR ( symbol , 0 ) = label ; SYMBOL_REF_FLAGS ( symbol ) = SYMBOL_FLAG_HAS_BLOCK_INFO ; SYMBOL_REF_BLOCK ( symbol ) = block ; SYMBOL_REF_BLOCK_OFFSET ( symbol ) = offset ; return symbol ; }
Create a symbol with label LABEL and place it at byte offset
OFFSET in BLOCK.
Create a symbol with label LABEL and place it at byte offset OFFSET in BLOCK .
/* Create the extended SYMBOL_REF.  */ /* Initialize the normal SYMBOL_REF fields.  */ /* Initialize the block_symbol stuff.  */