bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/29077] New: RISCV: .align directive disables secondary relaxatio


From: patrick at rivosinc dot com
Subject: [Bug ld/29077] New: RISCV: .align directive disables secondary relaxations
Date: Wed, 20 Apr 2022 17:40:02 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=29077

            Bug ID: 29077
           Summary: RISCV: .align directive disables secondary relaxations
           Product: binutils
           Version: 2.38
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: patrick at rivosinc dot com
  Target Milestone: ---

Adding a .align directive to an assembly file disables relaxations that are
enabled by other relaxations:

        .text
foo:
        jr      ra
        .zero 1048560
bar:
        jr      ra
        .globl  _start
_start:
        call    bar
        call    foo
        jr      ra
        .align 3

With .align 3:

Disassembly of section .text:

00000000000100b0 <foo>:
   100b0:       00008067                ret
        ...

00000000001100a4 <bar>:
  1100a4:       00008067                ret

00000000001100a8 <_start>:
  1100a8:       ffdff0ef                jal     ra,1100a4 <bar>
  1100ac:       fff00097                auipc   ra,0xfff00
  1100b0:       004080e7                jalr    4(ra) # 100b0 <foo>
  1100b4:       00008067                ret

Without .align 3:

Disassembly of section .text:

00000000000100b0 <foo>:
   100b0:       00008067                ret
        ...

00000000001100a4 <bar>:
  1100a4:       00008067                ret

00000000001100a8 <_start>:
  1100a8:       ffdff0ef                jal     ra,1100a4 <bar>
  1100ac:       804000ef                jal     ra,100b0 <foo>
  1100b0:       00008067                ret

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]