52 lines
1.8 KiB
Diff
52 lines
1.8 KiB
Diff
diff -urpN a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md
|
|
--- a/gcc/config/rs6000/altivec.md 2018-01-15 01:47:30.483964000 +0800
|
|
+++ b/gcc/config/rs6000/altivec.md 2019-09-09 00:01:25.770835633 +0800
|
|
@@ -74,9 +74,6 @@
|
|
UNSPEC_VUNPACK_LO_SIGN_DIRECT
|
|
UNSPEC_VUPKHPX
|
|
UNSPEC_VUPKLPX
|
|
- UNSPEC_DARN
|
|
- UNSPEC_DARN_32
|
|
- UNSPEC_DARN_RAW
|
|
UNSPEC_DST
|
|
UNSPEC_DSTT
|
|
UNSPEC_DSTST
|
|
@@ -3770,21 +3767,21 @@
|
|
|
|
(define_insn "darn_32"
|
|
[(set (match_operand:SI 0 "register_operand" "=r")
|
|
- (unspec:SI [(const_int 0)] UNSPEC_DARN_32))]
|
|
+ (unspec_volatile:SI [(const_int 0)] UNSPECV_DARN_32))]
|
|
"TARGET_P9_MISC"
|
|
"darn %0,0"
|
|
[(set_attr "type" "integer")])
|
|
|
|
(define_insn "darn_raw"
|
|
[(set (match_operand:DI 0 "register_operand" "=r")
|
|
- (unspec:DI [(const_int 0)] UNSPEC_DARN_RAW))]
|
|
+ (unspec_volatile:DI [(const_int 0)] UNSPECV_DARN_RAW))]
|
|
"TARGET_P9_MISC && TARGET_64BIT"
|
|
"darn %0,2"
|
|
[(set_attr "type" "integer")])
|
|
|
|
(define_insn "darn"
|
|
[(set (match_operand:DI 0 "register_operand" "=r")
|
|
- (unspec:DI [(const_int 0)] UNSPEC_DARN))]
|
|
+ (unspec_volatile:DI [(const_int 0)] UNSPECV_DARN))]
|
|
"TARGET_P9_MISC && TARGET_64BIT"
|
|
"darn %0,1"
|
|
[(set_attr "type" "integer")])
|
|
diff -urpN a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
|
|
--- a/gcc/config/rs6000/rs6000.md 2018-01-21 21:32:58.843504000 +0800
|
|
+++ b/gcc/config/rs6000/rs6000.md 2019-09-08 23:53:13.122859153 +0800
|
|
@@ -163,6 +163,9 @@
|
|
UNSPECV_EH_RR ; eh_reg_restore
|
|
UNSPECV_ISYNC ; isync instruction
|
|
UNSPECV_MFTB ; move from time base
|
|
+ UNSPECV_DARN ; darn 1 (deliver a random number)
|
|
+ UNSPECV_DARN_32 ; darn 2
|
|
+ UNSPECV_DARN_RAW ; darn 0
|
|
UNSPECV_NLGR ; non-local goto receiver
|
|
UNSPECV_MFFS ; Move from FPSCR
|
|
UNSPECV_MTFSF ; Move to FPSCR Fields
|