GCC Wikia
Advertisement

このページを編集する際は,編集に関する方針に従ってください.[]

概要[]

引数[]

  • void

実装[]

554 /* Compute the table of register modes.
555    These values are used to record death information for individual registers
556    (as opposed to a multi-register mode).  */
557 
558 void
559 init_reg_modes_once (void)
560 {
561   int i, j;
562 
563   for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
564     for (j = 0; j < MAX_MACHINE_MODE; j++)
565       hard_regno_nregs[i][j] = HARD_REGNO_NREGS(i, (enum machine_mode)j);
566 
567   for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
568     {
569       reg_raw_mode[i] = choose_hard_reg_mode (i, 1, false);
570 
571       /* If we couldn't find a valid mode, just use the previous mode.
572          ??? One situation in which we need to do this is on the mips where
573          HARD_REGNO_NREGS (fpreg, [SD]Fmode) returns 2.  Ideally we'd like
574          to use DF mode for the even registers and VOIDmode for the odd
575          (for the cpu models where the odd ones are inaccessible).  */
576       if (reg_raw_mode[i] == VOIDmode)
577         reg_raw_mode[i] = i == 0 ? word_mode : reg_raw_mode[i-1];
578     }
579 }



リンク元

Advertisement