score_print_operand has 'U' print hi part of a CONST_INT rtx
else if (c == 'U') { gcc_assert (code == CONST_INT); fprintf (file, HOST_WIDE_INT_PRINT_HEX, (unsigned HOST_WIDE_INT) INTVAL (op) >> 16); } On 64bit host, for (const_int -2147483648 [0xffffffff80000000]), it will generate 0xffffffff8000. -- Summary: Bad 16bit constant code generation on 64bit host Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hjl at lucon dot org GCC target triplet: score-unknown-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30474