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