diff options
| -rw-r--r-- | gas/config/tc-loongarch.c | 5 | ||||
| -rw-r--r-- | gas/testsuite/gas/loongarch/insn_align_4.d | 7 | ||||
| -rw-r--r-- | gas/testsuite/gas/loongarch/insn_align_4.s | 4 |
3 files changed, 16 insertions, 0 deletions
diff --git a/gas/config/tc-loongarch.c b/gas/config/tc-loongarch.c index 1eb35f2c75e..d067318ce24 100644 --- a/gas/config/tc-loongarch.c +++ b/gas/config/tc-loongarch.c @@ -1432,6 +1432,11 @@ loongarch_assemble_INSNs (char *str, unsigned int expand_from_macro) if (*str == '\0') break; + /* LoongArch instructions require 4-byte alignment. When emitting + instructions into any section, record the appropriate section + alignment. */ + record_alignment (now_seg, 2); + struct loongarch_cl_insn the_one; memset (&the_one, 0, sizeof (the_one)); the_one.name = str; diff --git a/gas/testsuite/gas/loongarch/insn_align_4.d b/gas/testsuite/gas/loongarch/insn_align_4.d new file mode 100644 index 00000000000..31a5d352a76 --- /dev/null +++ b/gas/testsuite/gas/loongarch/insn_align_4.d @@ -0,0 +1,7 @@ +#as: +#readelf: -S + +#... + \[ [0-9]+\] \.text PROGBITS [0-9a-f]{16} [0-9a-f]{8} + [0-9a-f]{16} [0-9a-f]{16} AX 0 0 4 +#... diff --git a/gas/testsuite/gas/loongarch/insn_align_4.s b/gas/testsuite/gas/loongarch/insn_align_4.s new file mode 100644 index 00000000000..7b4922c113f --- /dev/null +++ b/gas/testsuite/gas/loongarch/insn_align_4.s @@ -0,0 +1,4 @@ +.type test, @function +test: + jirl $ra, $ra, 0 +.size test, .-test |
