Andrew Haley <[EMAIL PROTECTED]> writes:
> In the RTL code it moves the mem ref, not just the address:
>
> (call (mem:QI (symbol_ref:DI ("_Jv_InitClass") [flags 0x41]
>
> (set (reg/f:DI 95 [ #ref#8#1 ])
> (mem/s/u/f/j:DI (const:DI (plus:DI (symbol_ref:DI
> ("_CD_java_text_Collator")
> (const_int 16 [0x10])))
>
> is turned to:
>
> (set (reg/f:DI 162 [ #ref#8#1 ])
> (mem/s/u/f/j:DI (const:DI (plus:DI (symbol_ref:DI
> ("_CD_java_text_Collator")
> (const_int 16 [0x10])))
>
> ...
>
> (call (mem:QI (symbol_ref:DI ("_Jv_InitClass")
As far as I know, that should happen if _Jv_InitClass is pure or
const. Note that if gcc can see the source for _Jv_InitClass, it will
decide for itself whether it is pure or const.
Ian