I have a simple loop over the defs of an INSN, looking for the def of a
specific register X:

  struct df_ref **defs;
  for (defs = DF_INSN_DEFS (insn);
       *defs && !rtx_equal_p (DF_REF_REG (*defs), x);
       defs++)
    ;

   It doesn't work because the modes don't match:

(gdb) call debug_rtx (defs[0]->insn)
(insn 9 8 10 2 /tmp/pr3507-3.c:9 (set (reg:CCSO 13 cc)
        (compare:CCSO (reg/v:HI 22 [ a ])
            (reg/v:HI 23 [ b ]))) 269 {*cmphi_ccso} (nil))
(gdb) call debug_rtx (defs[0]->reg)
(reg:CC 13 cc)

   Should I just compare register numbers instead?

-- 
Rask Ingemann Lambertsen
Danish law requires addresses in e-mail to be logged and stored for a year

Reply via email to