Insns marked as volatile?

Toshiyasu Morita tm@netcom.com
Thu Nov 19 17:58:00 GMT 1998


I'm seeing some strangeness which I don't understand; specifically some 
volatile bits are set when C++ class members are referenced, which seems 
rather odd. Here's a quick partial code sample; this code:

  v[0].px  = x2;
  v[0].py  = y1;
  v[0].w   = ooz;
  v[0].s   = s2;
  v[0].t   = t1;

...generates insns in the .rtl file which look like this:

(insn 21 19 22 (set (reg:SI 58)
        (reg/v/u:SI 53)) -1 (nil)  <- volatile?
    (nil))

(insn 22 21 24 (set (reg:SI 59)
        (plus:SI (reg/v/u:SI 53)   <- volatile?
            (const_int 16))) -1 (nil)
    (nil))

(insn 24 22 25 (parallel[
            (set (mem/s:SF (reg:SI 59))
                (reg/v:SF 54))     <- volatile?
            (use (reg/v:PSI 48 fpscr))
            (clobber (scratch:SI))
        ] ) -1 (nil)
    (nil))

Can someone familiar with the C++ front-end offer any insight?

Toshi




More information about the Gcc-bugs mailing list