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]

Abt RTL expression


Hello all,

While going through the RTL dumps, I noticed a few things which i need
to get clarified.
Below is the extract, in which i get the doubt.

(insn 106 36 107 6 (set (reg:SI 13 a5)
       (const_int -20 [0xffffffec])) 17 {movsi_short_const} (nil)
   (nil))

(insn 107 106 108 6 (parallel [
           (set (reg:SI 13 a5)
               (plus:SI (reg:SI 13 a5)
                   (reg/f:SI 14 a6)))
           (clobber (reg:CC 21 cc))
       ]) 29 {addsi3} (nil)
   (expr_list:REG_EQUIV (plus:SI (reg/f:SI 14 a6)
           (const_int -20 [0xffffffec]))
       (nil)))

(insn 108 107 38 6 (set (reg:SI 13 a5)
       (mem/c:SI (reg:SI 13 a5) [0 S4 A32])) 15 {movsi_load} (nil)
   (nil))

My Deductions:
1. In insn 106, we are storing -16 in to the register 13 (a5).
2. In insn 107, we are taking the value from register 14 (a6) which is
a pointer and subtracting 16 from it and storing in a5.

Now a6 contains the stack pointer. Therefore a5 now contains SP-16.

3. In insn 108, we are storing the value pointed by the register a5 in to a5.
  Is my deduction for insn 108 right?
  If it is right, shouldn't the expression be like this:
       (mem/c:SI (reg/f:SI 13 a5) [0 S4 A32])) 15 {movsi_load} (nil)

if i am wrong, can anyone tell me what actually insn 108 means?

Regards,
Rohit


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