aboutsummaryrefslogtreecommitdiff
path: root/libitm/config
diff options
context:
space:
mode:
authorLulu Cheng <chenglulu@loongson.cn>2022-10-12 11:02:11 +0800
committerLulu Cheng <chenglulu@loongson.cn>2022-10-13 09:54:17 +0800
commit7c059880fca175589efc8e06ef458020a005658d (patch)
tree840c637a62a0b7675c15436181bf0f80c8ee5903 /libitm/config
parente867f6b7e636391cf70a8d9b9bac79248b3fad67 (diff)
downloadgcc-7c059880fca175589efc8e06ef458020a005658d.zip
gcc-7c059880fca175589efc8e06ef458020a005658d.tar.gz
gcc-7c059880fca175589efc8e06ef458020a005658d.tar.bz2
LoongArch: Fixed a bug in the loongarch architecture of libitm package.
Add a soft floating point condition to the register recovery part of the code. libitm/ChangeLog: * config/loongarch/sjlj.S: Add a soft floating point condition to the register recovery part of the code.
Diffstat (limited to 'libitm/config')
-rw-r--r--libitm/config/loongarch/sjlj.S3
1 files changed, 3 insertions, 0 deletions
diff --git a/libitm/config/loongarch/sjlj.S b/libitm/config/loongarch/sjlj.S
index a5f9fad..f896e40 100644
--- a/libitm/config/loongarch/sjlj.S
+++ b/libitm/config/loongarch/sjlj.S
@@ -104,6 +104,8 @@ GTM_longjmp:
GPR_L $s7, $r5, 10*SZ_GPR
GPR_L $s8, $r5, 11*SZ_GPR
+#if !defined(__loongarch_soft_float)
+ /* Callee-saved scratch FPRs (f24-f31) */
FPR_L $f24, $r5, 12*SZ_GPR + 0*SZ_FPR
FPR_L $f25, $r5, 12*SZ_GPR + 1*SZ_FPR
FPR_L $f26, $r5, 12*SZ_GPR + 2*SZ_FPR
@@ -112,6 +114,7 @@ GTM_longjmp:
FPR_L $f29, $r5, 12*SZ_GPR + 5*SZ_FPR
FPR_L $f30, $r5, 12*SZ_GPR + 6*SZ_FPR
FPR_L $f31, $r5, 12*SZ_GPR + 7*SZ_FPR
+#endif
GPR_L $r7, $r5, 2*SZ_GPR
GPR_L $fp, $r5, 0*SZ_GPR