diff --git a/gas/ChangeLog b/gas/ChangeLog index 94c3bbb4cdd..122d27fc41c 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2020-09-09 Alan Modra + + * config/tc-ppc.c (md_assemble): Emit prefix insn by parts when + valueT is smaller than 64 bits. + 2020-09-07 Cooper Qu * config/tc-csky.c (CSKYV2_ISA_DSP): CSKY_ISA_DSPE60. diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c index 1ff1cd9eab2..441818215e1 100644 --- a/gas/config/tc-ppc.c +++ b/gas/config/tc-ppc.c @@ -3882,7 +3882,8 @@ md_assemble (char *str) /* The prefix part of an 8-byte instruction always occupies the lower addressed word in a doubleword, regardless of endianness. */ - if (!target_big_endian && insn_length == 8) + if (insn_length == 8 + && (sizeof (insn) > sizeof (valueT) || !target_big_endian)) { md_number_to_chars (f, PPC_GET_PREFIX (insn), 4); md_number_to_chars (f + 4, PPC_GET_SUFFIX (insn), 4);