[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/22598] [RISCV] No way to disable two-instruction sequences for
From: |
asb at lowrisc dot org |
Subject: |
[Bug gas/22598] [RISCV] No way to disable two-instruction sequences for branch or relocation for jal instructions |
Date: |
Wed, 10 Jan 2018 09:10:33 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=22598
--- Comment #10 from Alex Bradbury <asb at lowrisc dot org> ---
Actually I was too quick to respond, it doesn't seem that GNU as is treating
immediate arguments to branches in MIPS as absolute addresses:
$ cat test.s
lab:
beq $6, $7, 128
bne $4, $5, 64
beq $6, $7, 128
bne $4, $5, 64
$ ./bin/mips-img-elf-as test.s
$ ./bin/mips-img-elf-objdump -dr test.o
test.o: file format elf32-tradbigmips
Disassembly of section .text:
00000000 <lab>:
0: 10c70020 beq a2,a3,84 <lab+0x84>
0: R_MIPS_PC16 *ABS*
4: 00000000 nop
8: 14850010 bne a0,a1,4c <lab+0x4c>
8: R_MIPS_PC16 *ABS*
c: 00000000 nop
10: 10c70020 beq a2,a3,94 <lab+0x94>
10: R_MIPS_PC16 *ABS*
14: 00000000 nop
18: 14850010 bne a0,a1,5c <lab+0x5c>
18: R_MIPS_PC16 *ABS*
1c: 00000000 nop
You'll note two things:
1) The assembly won't actually round-trip in a sensible way (i.e. re-assembling
the disassembly will not give the desired result)
2) The first beq $6, $7, 128 refers to <lab+0x84> and the second refers to
<lab+0x94>
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug gas/22598] [RISCV] No way to disable two-instruction sequences for branch or relocation for jal instructions, (continued)
- [Bug gas/22598] [RISCV] No way to disable two-instruction sequences for branch or relocation for jal instructions, palmer at dabbelt dot com, 2018/01/08
- [Bug gas/22598] [RISCV] No way to disable two-instruction sequences for branch or relocation for jal instructions, wilson at gcc dot gnu.org, 2018/01/08
- [Bug gas/22598] [RISCV] No way to disable two-instruction sequences for branch or relocation for jal instructions, wilson at gcc dot gnu.org, 2018/01/08
- [Bug gas/22598] [RISCV] No way to disable two-instruction sequences for branch or relocation for jal instructions, palmer at gcc dot gnu.org, 2018/01/08
- [Bug gas/22598] [RISCV] No way to disable two-instruction sequences for branch or relocation for jal instructions, wilson at gcc dot gnu.org, 2018/01/08
- [Bug gas/22598] [RISCV] No way to disable two-instruction sequences for branch or relocation for jal instructions, palmer at gcc dot gnu.org, 2018/01/09
- [Bug gas/22598] [RISCV] No way to disable two-instruction sequences for branch or relocation for jal instructions, wilson at gcc dot gnu.org, 2018/01/09
- [Bug gas/22598] [RISCV] No way to disable two-instruction sequences for branch or relocation for jal instructions, asb at lowrisc dot org, 2018/01/09
- [Bug gas/22598] [RISCV] No way to disable two-instruction sequences for branch or relocation for jal instructions, wilson at gcc dot gnu.org, 2018/01/09
- [Bug gas/22598] [RISCV] No way to disable two-instruction sequences for branch or relocation for jal instructions, asb at lowrisc dot org, 2018/01/10
- [Bug gas/22598] [RISCV] No way to disable two-instruction sequences for branch or relocation for jal instructions,
asb at lowrisc dot org <=
- [Bug gas/22598] [RISCV] No way to disable two-instruction sequences for branch or relocation for jal instructions, wilson at gcc dot gnu.org, 2018/01/10