On Mon, Aug 26, 2013 at 7:51 PM, Hendrik Greving <hendrik.greving.intel@xxxxxxxxx> wrote: > > GCC 4.8.1 generates a movsi like this when compiling newlib with my backend: > > gdb) call debug_rtx(operand0) > (reg:SI 356) > (gdb) call debug_rtx(operand1) > (const:SI (plus:SI (symbol_ref:SI ("_ctype_locale_buf") <var_decl > 0x2aaaab15d558 _ctype_locale_buf>) > (const_int 32 [0x20]))) > > Any idea why the compiler tries to store such a weird construct? Is it > weird actually, or normal? I am trying to figure out if I either > allowed too much at some point (predicates?) or too little (do I need > to handle this with instructions?)? This seems normal enough to me. It's basically move reg356, $_ctype_locale_buf+32 Here _ctype_locale_buf+32 is an immediate value which is known at link time. You will get this kind of thing from code like p = &_ctype_locale_buf[32]; if _ctype_locale_buf is a char array. Ian