This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

How is REG_EQUAL interpreted?


Hi,

gcc's internal manual explains the interpretation of REG_EQUAL note as

  If the output of the single set is a strict_low_part expression, the
  note refers to the register that is contained in SUBREG_REG of the
  subreg expression.

Now is it OK to have a REG_EQUAL note like the following?

(insn 16 15 19 (nil) (set (subreg:HI (reg/v:DI 17) 6)
                          (mem/u/f:HI (reg/f:HI 21) [3 S2 A16])) -1 (nil)
      (expr_list:REG_EQUAL (const_double 1 [0x1] 1 [0x1] 0 [0x0] 0 [0x0] 0 [0x0] 0 [0x0])
                           (nil)))

This does not have a strict_low_part, but the REG_EQUAL note here
seems to suggest that (reg:DI 17) is equal to (const_double ...).

I get the above insn as the last insn of a sequence emitted by
move_insn for a 64-bit move.

Thanks,

Kazu Hirata


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]