RISC-V: Don't emit 2-byte NOPs if the C extension is disabled
Systems without the C extension mandate 4-byte alignment for instructions, so there is no reason to allow for 2-byte alignment. This change avoids emitting lots of unimplemented instructions into object files on non-C targets, which users keep reporting as a bug. While this isn't actually a bug (as none of the offsets in object files are relevant until RISC-V), it is ugly. gas/ChangeLog 2017-10-23 Palmer Dabbelt <palmer@dabbelt.com> * config/tc-riscv.c (riscv_frag_align_code): Align code by 4 bytes on non-RVC systems.
This commit is contained in:
parent
fee0ea1f2d
commit
2c3f27ed0d
@ -1,3 +1,8 @@
|
||||
2017-10-23 Palmer Dabbelt <palmer@dabbelt.com>
|
||||
|
||||
* config/tc-riscv.c (riscv_frag_align_code): Align code by 4
|
||||
bytes on non-RVC systems.
|
||||
|
||||
2017-10-23 Maciej W. Rozycki <macro@imgtec.com>
|
||||
|
||||
* config/tc-mips.c (mips_elf_final_processing): Don't set
|
||||
|
@ -2277,7 +2277,7 @@ bfd_boolean
|
||||
riscv_frag_align_code (int n)
|
||||
{
|
||||
bfd_vma bytes = (bfd_vma) 1 << n;
|
||||
bfd_vma worst_case_bytes = bytes - 2;
|
||||
bfd_vma worst_case_bytes = bytes - (riscv_opts.rvc ? 2 : 4);
|
||||
char *nops = frag_more (worst_case_bytes);
|
||||
expressionS ex;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user