mirror of git://gcc.gnu.org/git/gcc.git
[PATCH] libgcc SH: fix alignment for relaxation
From 6462f1e6a2565c5d4756036d9bc2f39dce9bd768 Mon Sep 17 00:00:00 2001 From: QBos07 <qubos@outlook.de> Date: Sat, 10 May 2025 16:56:28 +0000 Subject: [PATCH] libgcc SH: fix alignment for relaxation when relaxation is enabled we can not infer the alignment from the position as that may change. This should not change non-relaxed builds as its allready aligned there. This was the missing piece to building an entire toolchain with -mrelax Credit goes to Oleg Endo: https://sourceware.org/bugzilla/show_bug.cgi?id=3298#c4 libgcc/ * config/sh/lib1funcs.S (ashiftrt_r4_32): Increase alignment. (movemem): Force alignment of the mova intruction.
This commit is contained in:
parent
7ed37d5ea4
commit
de04f593ef
|
|
@ -115,7 +115,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|||
HIDDEN_FUNC(GLOBAL(ashiftrt_r4_31))
|
||||
HIDDEN_FUNC(GLOBAL(ashiftrt_r4_32))
|
||||
|
||||
.align 1
|
||||
.align 4
|
||||
GLOBAL(ashiftrt_r4_32):
|
||||
GLOBAL(ashiftrt_r4_31):
|
||||
rotcl r4
|
||||
|
|
@ -764,6 +764,7 @@ LOCAL(movmem_loop): /* Reached with rts */
|
|||
bt GLOBAL(movmemSI52)
|
||||
! done all the large groups, do the remainder
|
||||
! jump to movmem+
|
||||
.balign 4
|
||||
mova GLOBAL(movmemSI4)+4,r0
|
||||
add r6,r0
|
||||
jmp @r0
|
||||
|
|
|
|||
Loading…
Reference in New Issue