aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/microblaze/microblaze.md
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/microblaze/microblaze.md')
-rw-r--r--gcc/config/microblaze/microblaze.md19
1 files changed, 8 insertions, 11 deletions
diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
index 02857875022..3618cad524b 100644
--- a/gcc/config/microblaze/microblaze.md
+++ b/gcc/config/microblaze/microblaze.md
@@ -40,6 +40,7 @@
(UNSPEC_PLT 103) ;; jump table
(UNSPEC_CMP 104) ;; signed compare
(UNSPEC_CMPU 105) ;; unsigned compare
+ (UNSPEC_TLS 106) ;; jump table
])
@@ -459,7 +460,7 @@
(define_insn "addsi3"
[(set (match_operand:SI 0 "register_operand" "=d,d,d")
(plus:SI (match_operand:SI 1 "reg_or_0_operand" "%dJ,dJ,dJ")
- (match_operand:SI 2 "arith_operand" "d,I,i")))]
+ (match_operand:SI 2 "arith_plus_operand" "d,I,i")))]
""
"@
addk\t%0,%z1,%2
@@ -892,8 +893,8 @@
(define_insn "*movdi_internal"
- [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d,d,d,R,m")
- (match_operand:DI 1 "general_operand" " d,i,J,R,m,d,d"))]
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,d,d,d,R,o")
+ (match_operand:DI 1 "general_operand" " d,i,J,R,o,d,d"))]
""
{
switch (which_alternative)
@@ -999,13 +1000,9 @@
(set_attr "length" "4")])
(define_insn "*movsi_internal2"
- [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d,d, d,d,R, T")
- (match_operand:SI 1 "move_operand" " d,I,Mnis,R,m,dJ,dJ"))]
- "(register_operand (operands[0], SImode)
- || register_operand (operands[1], SImode)
- || (GET_CODE (operands[1]) == CONST_INT && INTVAL (operands[1]) == 0))
- && (flag_pic != 2 || (GET_CODE (operands[1]) != SYMBOL_REF
- && GET_CODE (operands[1]) != LABEL_REF))"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d,d, d,d,R,m")
+ (match_operand:SI 1 "move_src_operand" " d,I,Mnis,R,m,dJ,dJ"))]
+ ""
"@
addk\t%0,%1,r0
addik\t%0,r0,%1\t# %X1
@@ -1196,7 +1193,7 @@
;; Applies to both TARGET_SOFT_FLOAT and TARGET_HARD_FLOAT
;;
(define_insn "*movdf_internal"
- [(set (match_operand:DF 0 "nonimmediate_operand" "=d,d,d,d,To")
+ [(set (match_operand:DF 0 "nonimmediate_operand" "=d,d,d,d,o")
(match_operand:DF 1 "general_operand" "dG,o,F,T,d"))]
""
{