aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorTetsuma Hoshino <t-hoshino@pony-e.jp>2023-04-08 08:19:53 -0600
committerJeff Law <jlaw@ventanamicro>2023-04-08 08:26:00 -0600
commit79fb2de020c499bd01708e1418965a11166b7d5b (patch)
treebeec3f471c56f7bef2adac4498091eb3d02a2759 /libgcc
parentc18b1b0bc78c27257cfc8448581564337412f567 (diff)
downloadgcc-79fb2de020c499bd01708e1418965a11166b7d5b.zip
gcc-79fb2de020c499bd01708e1418965a11166b7d5b.tar.gz
gcc-79fb2de020c499bd01708e1418965a11166b7d5b.tar.bz2
PR target/109402: v850 (not v850e) variant of __muldi3() moves sp in reversed direction [PR109402]
muldi3 will deallocate stack space after the call to __save_r26_r31, then re-allocate the space a short while later. If an interrupt occurs in that window, it can clobber items on the stack. PR target/109402 libgcc/ * config/v850/lib1funcs.S (___muldi3): Remove unnecessary stack manipulations.
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/config/v850/lib1funcs.S2
1 files changed, 0 insertions, 2 deletions
diff --git a/libgcc/config/v850/lib1funcs.S b/libgcc/config/v850/lib1funcs.S
index 20fa499..35b5ab5 100644
--- a/libgcc/config/v850/lib1funcs.S
+++ b/libgcc/config/v850/lib1funcs.S
@@ -2211,7 +2211,6 @@ ___ucmpdi2:
___muldi3:
#ifdef __v850__
jarl __save_r26_r31, r10
- addi 16, sp, sp
mov r6, r28
shr 15, r28
movea lo(32767), r0, r14
@@ -2256,7 +2255,6 @@ ___muldi3:
mulh r12, r6
mov r28, r17
mulh r10, r17
- add -16, sp
mov r28, r12
mulh r8, r12
add r17, r18