*参照元 [#c12b6486]
#backlinks

*説明 [#ed610ab5]
-パス: [[gcc-8.3/gcc/hard-reg-set.h]]

-FIXME: これは何?
--説明


**参考 [#i742a50e]


*実装 [#bff902d1]
 struct target_hard_regs {
   void finalize ();
 
   /* The set of registers that actually exist on the current target.  */
   HARD_REG_SET x_accessible_reg_set;
 
   /* The set of registers that should be considered to be register
      operands.  It is a subset of x_accessible_reg_set.  */
   HARD_REG_SET x_operand_reg_set;
 
-
--[[gcc-8.3/gcc/HARD_REG_SET]]

   /* Indexed by hard register number, contains 1 for registers
      that are fixed use (stack pointer, pc, frame pointer, etc.;.
      These are the registers that cannot be used to allocate
      a pseudo reg whose life does not cross calls.  */
   char x_fixed_regs[FIRST_PSEUDO_REGISTER];
 
   /* The same info as a HARD_REG_SET.  */
   HARD_REG_SET x_fixed_reg_set;
 
   /* Indexed by hard register number, contains 1 for registers
      that are fixed use or are clobbered by function calls.
      These are the registers that cannot be used to allocate
      a pseudo reg whose life crosses calls.  */
   char x_call_used_regs[FIRST_PSEUDO_REGISTER];
 
   char x_call_really_used_regs[FIRST_PSEUDO_REGISTER];
 
   /* The same info as a HARD_REG_SET.  */
   HARD_REG_SET x_call_used_reg_set;
 
   /* Contains registers that are fixed use -- i.e. in fixed_reg_set -- or
      a function value return register or TARGET_STRUCT_VALUE_RTX or
      STATIC_CHAIN_REGNUM.  These are the registers that cannot hold quantities
      across calls even if we are willing to save and restore them.  */
   HARD_REG_SET x_call_fixed_reg_set;
 
   /* Contains registers that are fixed use -- i.e. in fixed_reg_set -- but
      only if they are not merely part of that set because they are global
      regs.  Global regs that are not otherwise fixed can still take part
      in register allocation.  */
   HARD_REG_SET x_fixed_nonglobal_reg_set;
 
   /* Contains 1 for registers that are set or clobbered by calls.  */
   /* ??? Ideally, this would be just call_used_regs plus global_regs, but
      for someone's bright idea to have call_used_regs strictly include
      fixed_regs.  Which leaves us guessing as to the set of fixed_regs
      that are actually preserved.  We know for sure that those associated
      with the local stack frame are safe, but scant others.  */
   HARD_REG_SET x_regs_invalidated_by_call;
 
   /* Call used hard registers which can not be saved because there is no
      insn for this.  */
   HARD_REG_SET x_no_caller_save_reg_set;
 
   /* Table of register numbers in the order in which to try to use them.  */
   int x_reg_alloc_order[FIRST_PSEUDO_REGISTER];
 
   /* The inverse of reg_alloc_order.  */
   int x_inv_reg_alloc_order[FIRST_PSEUDO_REGISTER];
 
   /* For each reg class, a HARD_REG_SET saying which registers are in it.  */
   HARD_REG_SET x_reg_class_contents[N_REG_CLASSES];
 
   /* For each reg class, a boolean saying whether the class contains only
      fixed registers.  */
   bool x_class_only_fixed_regs[N_REG_CLASSES];
 
   /* For each reg class, number of regs it contains.  */
   unsigned int x_reg_class_size[N_REG_CLASSES];
 
   /* For each reg class, table listing all the classes contained in it.  */
   enum reg_class x_reg_class_subclasses[N_REG_CLASSES][N_REG_CLASSES];
 
   /* For each pair of reg classes,
      a largest reg class contained in their union.  */
   enum reg_class x_reg_class_subunion[N_REG_CLASSES][N_REG_CLASSES];
 
   /* For each pair of reg classes,
      the smallest reg class that contains their union.  */
   enum reg_class x_reg_class_superunion[N_REG_CLASSES][N_REG_CLASSES];
 
   /* Vector indexed by hardware reg giving its name.  */
   const char *x_reg_names[FIRST_PSEUDO_REGISTER];
 
   /* Records which registers can form a particular subreg, with the subreg
      being identified by its outer mode, inner mode and offset.  */
   hash_table <simplifiable_subregs_hasher> *x_simplifiable_subregs;
 };
-
--[[gcc-8.3/gcc/reg_class]]
--[[gcc-8.3/gcc/hash_table]]
--[[gcc-8.3/gcc/simplifiable_subregs_hasher]]


*コメント [#dff01ba7]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS