Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
878e0c14
Commit
878e0c14
authored
Apr 22, 1992
by
Richard Kenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
entered into RCS
From-SVN: r818
parent
2851546a
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
245 additions
and
245 deletions
+245
-245
gcc/config/a29k/a29k.c
+9
-9
gcc/config/a29k/a29k.md
+236
-236
No files found.
gcc/config/a29k/a29k.c
View file @
878e0c14
...
@@ -183,24 +183,24 @@ float_const_operand (op, mode)
...
@@ -183,24 +183,24 @@ float_const_operand (op, mode)
general-purpose register. */
general-purpose register. */
int
int
g
en
_reg_or_float_constant_operand
(
op
,
mode
)
g
pc
_reg_or_float_constant_operand
(
op
,
mode
)
rtx
op
;
rtx
op
;
enum
machine_mode
mode
;
enum
machine_mode
mode
;
{
{
return
float_const_operand
(
op
,
mode
)
||
g
en
_reg_operand
(
op
,
mode
);
return
float_const_operand
(
op
,
mode
)
||
g
pc
_reg_operand
(
op
,
mode
);
}
}
/* Returns 1 if OP is an integer constant of the proper mode or a
/* Returns 1 if OP is an integer constant of the proper mode or a
general-purpose register. */
general-purpose register. */
int
int
g
en
_reg_or_integer_constant_operand
(
op
,
mode
)
g
pc
_reg_or_integer_constant_operand
(
op
,
mode
)
rtx
op
;
rtx
op
;
enum
machine_mode
mode
;
enum
machine_mode
mode
;
{
{
return
((
GET_MODE
(
op
)
==
VOIDmode
return
((
GET_MODE
(
op
)
==
VOIDmode
&&
(
GET_CODE
(
op
)
==
CONST_INT
||
GET_CODE
(
op
)
==
CONST_DOUBLE
))
&&
(
GET_CODE
(
op
)
==
CONST_INT
||
GET_CODE
(
op
)
==
CONST_DOUBLE
))
||
g
en
_reg_operand
(
op
,
mode
));
||
g
pc
_reg_operand
(
op
,
mode
));
}
}
/* Returns 1 if OP is a special machine register. */
/* Returns 1 if OP is a special machine register. */
...
@@ -228,7 +228,7 @@ accum_reg_operand (op, mode)
...
@@ -228,7 +228,7 @@ accum_reg_operand (op, mode)
/* Returns 1 if OP is a normal data register. */
/* Returns 1 if OP is a normal data register. */
int
int
g
en
_reg_operand
(
op
,
mode
)
g
pc
_reg_operand
(
op
,
mode
)
rtx
op
;
rtx
op
;
enum
machine_mode
mode
;
enum
machine_mode
mode
;
{
{
...
@@ -267,18 +267,18 @@ srcb_operand (op, mode)
...
@@ -267,18 +267,18 @@ srcb_operand (op, mode)
if
(
GET_MODE
(
op
)
!=
mode
&&
mode
!=
VOIDmode
)
if
(
GET_MODE
(
op
)
!=
mode
&&
mode
!=
VOIDmode
)
return
0
;
return
0
;
return
g
en
_reg_operand
(
op
,
mode
);
return
g
pc
_reg_operand
(
op
,
mode
);
}
}
/* Return 1 if OP is either an immediate or a general register. This is used
/* Return 1 if OP is either an immediate or a general register. This is used
for the input operand of mtsr/mtrsim. */
for the input operand of mtsr/mtrsim. */
int
int
g
en
_reg_or_immediate_operand
(
op
,
mode
)
g
pc
_reg_or_immediate_operand
(
op
,
mode
)
rtx
op
;
rtx
op
;
enum
machine_mode
;
enum
machine_mode
;
{
{
return
g
en
_reg_operand
(
op
,
mode
)
||
immediate_operand
(
op
,
mode
);
return
g
pc
_reg_operand
(
op
,
mode
)
||
immediate_operand
(
op
,
mode
);
}
}
/* Return 1 if OP can be used as the second operand of and AND insn. This
/* Return 1 if OP can be used as the second operand of and AND insn. This
...
@@ -370,7 +370,7 @@ out_operand (op, mode)
...
@@ -370,7 +370,7 @@ out_operand (op, mode)
op
=
SUBREG_REG
(
op
);
op
=
SUBREG_REG
(
op
);
if
(
GET_CODE
(
op
)
==
REG
)
if
(
GET_CODE
(
op
)
==
REG
)
return
(
mode
==
SImode
||
g
en
_reg_operand
(
orig_op
,
mode
)
return
(
mode
==
SImode
||
g
pc
_reg_operand
(
orig_op
,
mode
)
||
(
GET_MODE_CLASS
(
mode
)
==
MODE_FLOAT
||
(
GET_MODE_CLASS
(
mode
)
==
MODE_FLOAT
&&
accum_reg_operand
(
orig_op
,
mode
)));
&&
accum_reg_operand
(
orig_op
,
mode
)));
...
...
gcc/config/a29k/a29k.md
View file @
878e0c14
...
@@ -70,8 +70,8 @@
...
@@ -70,8 +70,8 @@
;; ADD
;; ADD
(define_insn "addsi3"
(define_insn "addsi3"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r,r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r,r")
(plus:SI (match_operand:SI 1 "g
en
_reg_operand" "%r,r")
(plus:SI (match_operand:SI 1 "g
pc
_reg_operand" "%r,r")
(match_operand:SI 2 "add_operand" "rI,N")))]
(match_operand:SI 2 "add_operand" "rI,N")))]
""
""
"@
"@
...
@@ -79,17 +79,17 @@
...
@@ -79,17 +79,17 @@
sub %0,%1,%n2")
sub %0,%1,%n2")
(define_insn "adddi3"
(define_insn "adddi3"
[
(set (match_operand:DI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:DI 0 "g
pc
_reg_operand" "=r")
(plus:DI (match_operand:DI 1 "g
en
_reg_operand" "%r")
(plus:DI (match_operand:DI 1 "g
pc
_reg_operand" "%r")
(match_operand:DI 2 "g
en
_reg_operand" "r")))]
(match_operand:DI 2 "g
pc
_reg_operand" "r")))]
""
""
"add %L0,%L1,%L2
\;
addc %0,%1,%2"
"add %L0,%L1,%L2
\;
addc %0,%1,%2"
[
(set_attr "type" "multi")
]
)
[
(set_attr "type" "multi")
]
)
;; AND/ANDN
;; AND/ANDN
(define_insn "andsi3"
(define_insn "andsi3"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r,r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r,r")
(and:SI (match_operand:SI 1 "g
en
_reg_operand" "%r,r")
(and:SI (match_operand:SI 1 "g
pc
_reg_operand" "%r,r")
(match_operand:SI 2 "and_operand" "rI,K")))]
(match_operand:SI 2 "and_operand" "rI,K")))]
""
""
"@
"@
...
@@ -97,9 +97,9 @@
...
@@ -97,9 +97,9 @@
andn %0,%1,%C2")
andn %0,%1,%C2")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(and:SI (not:SI (match_operand:SI 1 "srcb_operand" "rI"))
(and:SI (not:SI (match_operand:SI 1 "srcb_operand" "rI"))
(match_operand:SI 2 "g
en
_reg_operand" "r")))]
(match_operand:SI 2 "g
pc
_reg_operand" "r")))]
""
""
"andn %0,%2,%1")
"andn %0,%2,%1")
...
@@ -159,7 +159,7 @@
...
@@ -159,7 +159,7 @@
[
(set_attr "type" "call")
]
)
[
(set_attr "type" "call")
]
)
(define_expand "call_value"
(define_expand "call_value"
[
(parallel
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
[
(parallel
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(call (match_operand:SI 1 "" "")
(call (match_operand:SI 1 "" "")
(match_operand 2 "" "")))
(match_operand 2 "" "")))
(clobber (reg:SI 32))])
(clobber (reg:SI 32))])
...
@@ -179,7 +179,7 @@
...
@@ -179,7 +179,7 @@
}")
}")
(define_insn ""
(define_insn ""
[
(set (match_operand 0 "g
en
_reg_operand" "=r")
[
(set (match_operand 0 "g
pc
_reg_operand" "=r")
(call (match_operand:SI 1 "memory_operand" "m")
(call (match_operand:SI 1 "memory_operand" "m")
(match_operand 2 "" "")))
(match_operand 2 "" "")))
(clobber (reg:SI 32))]
(clobber (reg:SI 32))]
...
@@ -198,7 +198,7 @@
...
@@ -198,7 +198,7 @@
[
(set_attr "type" "call")
]
)
[
(set_attr "type" "call")
]
)
(define_insn ""
(define_insn ""
[
(set (match_operand 0 "g
en
_reg_operand" "=r")
[
(set (match_operand 0 "g
pc
_reg_operand" "=r")
(call (mem:SI (match_operand:SI 1 "immediate_operand" "i"))
(call (mem:SI (match_operand:SI 1 "immediate_operand" "i"))
(match_operand:SI 2 "general_operand" "g")))
(match_operand:SI 2 "general_operand" "g")))
(clobber (reg:SI 32))]
(clobber (reg:SI 32))]
...
@@ -227,14 +227,14 @@
...
@@ -227,14 +227,14 @@
;;
;;
;; Many of these are generated from move insns.
;; Many of these are generated from move insns.
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(and:SI (match_operand:SI 1 "immediate_operand" "i")
(and:SI (match_operand:SI 1 "immediate_operand" "i")
(const_int 65535)))]
(const_int 65535)))]
""
""
"const %0,%1")
"const %0,%1")
(define_insn ""
(define_insn ""
[
(set (zero_extract:SI (match_operand:SI 0 "g
en
_reg_operand" "+r")
[
(set (zero_extract:SI (match_operand:SI 0 "g
pc
_reg_operand" "+r")
(const_int 16)
(const_int 16)
(match_operand:SI 1 "const_0_operand" ""))
(match_operand:SI 1 "const_0_operand" ""))
(ashiftrt:SI (match_operand:SI 2 "immediate_operand" "i")
(ashiftrt:SI (match_operand:SI 2 "immediate_operand" "i")
...
@@ -243,7 +243,7 @@
...
@@ -243,7 +243,7 @@
"consth %0,%2")
"consth %0,%2")
(define_insn ""
(define_insn ""
[
(set (zero_extract:SI (match_operand:SI 0 "g
en
_reg_operand" "+r")
[
(set (zero_extract:SI (match_operand:SI 0 "g
pc
_reg_operand" "+r")
(const_int 16)
(const_int 16)
(match_operand:SI 1 "const_0_operand" ""))
(match_operand:SI 1 "const_0_operand" ""))
(match_operand:SI 2 "cint_16_operand" "J"))]
(match_operand:SI 2 "cint_16_operand" "J"))]
...
@@ -254,16 +254,16 @@
...
@@ -254,16 +254,16 @@
}")
}")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(ior:SI (and:SI (match_operand:SI 1 "g
en
_reg_operand" "0")
(ior:SI (and:SI (match_operand:SI 1 "g
pc
_reg_operand" "0")
(const_int 65535))
(const_int 65535))
(match_operand:SI 2 "const_int_operand" "n")))]
(match_operand:SI 2 "const_int_operand" "n")))]
"(INTVAL (operands
[
1
]
) & 0xffff) == 0"
"(INTVAL (operands
[
1
]
) & 0xffff) == 0"
"consth %0,%2")
"consth %0,%2")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(ior:SI (and:SI (match_operand:SI 1 "g
en
_reg_operand" "0")
(ior:SI (and:SI (match_operand:SI 1 "g
pc
_reg_operand" "0")
(const_int 65535))
(const_int 65535))
(and:SI (match_operand:SI 2 "immediate_operand" "i")
(and:SI (match_operand:SI 2 "immediate_operand" "i")
(const_int -65536))))]
(const_int -65536))))]
...
@@ -273,25 +273,25 @@
...
@@ -273,25 +273,25 @@
;; CONVERT
;; CONVERT
(define_insn "fix_truncsfsi2"
(define_insn "fix_truncsfsi2"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(fix:SI (match_operand:SF 1 "register_operand" "r")))]
(fix:SI (match_operand:SF 1 "register_operand" "r")))]
""
""
"convert %0,%1,0,3,0,1")
"convert %0,%1,0,3,0,1")
(define_insn "fix_truncdfsi2"
(define_insn "fix_truncdfsi2"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(fix:SI (match_operand:DF 1 "register_operand" "r")))]
(fix:SI (match_operand:DF 1 "register_operand" "r")))]
""
""
"convert %0,%1,0,3,0,2")
"convert %0,%1,0,3,0,2")
(define_insn "fixuns_truncsfsi2"
(define_insn "fixuns_truncsfsi2"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(unsigned_fix:SI (match_operand:SF 1 "register_operand" "r")))]
(unsigned_fix:SI (match_operand:SF 1 "register_operand" "r")))]
""
""
"convert %0,%1,1,3,0,1")
"convert %0,%1,1,3,0,1")
(define_insn "fixuns_truncdfsi2"
(define_insn "fixuns_truncdfsi2"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(unsigned_fix:SI (match_operand:DF 1 "register_operand" "r")))]
(unsigned_fix:SI (match_operand:DF 1 "register_operand" "r")))]
""
""
"convert %0,%1,1,3,0,2")
"convert %0,%1,1,3,0,2")
...
@@ -310,39 +310,39 @@
...
@@ -310,39 +310,39 @@
(define_insn "floatsisf2"
(define_insn "floatsisf2"
[
(set (match_operand:SF 0 "register_operand" "=r")
[
(set (match_operand:SF 0 "register_operand" "=r")
(float:SF (match_operand:SI 1 "g
en
_reg_operand" "r")))]
(float:SF (match_operand:SI 1 "g
pc
_reg_operand" "r")))]
""
""
"convert %0,%1,0,4,1,0")
"convert %0,%1,0,4,1,0")
(define_insn "floatsidf2"
(define_insn "floatsidf2"
[
(set (match_operand:DF 0 "register_operand" "=r")
[
(set (match_operand:DF 0 "register_operand" "=r")
(float:DF (match_operand:SI 1 "g
en
_reg_operand" "r")))]
(float:DF (match_operand:SI 1 "g
pc
_reg_operand" "r")))]
""
""
"convert %0,%1,0,4,2,0")
"convert %0,%1,0,4,2,0")
(define_insn "floatunssisf2"
(define_insn "floatunssisf2"
[
(set (match_operand:SF 0 "register_operand" "=r")
[
(set (match_operand:SF 0 "register_operand" "=r")
(unsigned_float:SF (match_operand:SI 1 "g
en
_reg_operand" "r")))]
(unsigned_float:SF (match_operand:SI 1 "g
pc
_reg_operand" "r")))]
""
""
"convert %0,%1,1,4,1,0")
"convert %0,%1,1,4,1,0")
(define_insn "floatunssidf2"
(define_insn "floatunssidf2"
[
(set (match_operand:DF 0 "register_operand" "=r")
[
(set (match_operand:DF 0 "register_operand" "=r")
(unsigned_float:DF (match_operand:SI 1 "g
en
_reg_operand" "r")))]
(unsigned_float:DF (match_operand:SI 1 "g
pc
_reg_operand" "r")))]
""
""
"convert %0,%1,1,4,2,0")
"convert %0,%1,1,4,2,0")
;; CPxxx, DEQ, DGT, DGE, FEQ, FGT, FGE
;; CPxxx, DEQ, DGT, DGE, FEQ, FGT, FGE
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(match_operator 3 "comparison_operator"
(match_operator 3 "comparison_operator"
[
(match_operand:SI 1 "g
en
_reg_operand" "r")
[
(match_operand:SI 1 "g
pc
_reg_operand" "r")
(match_operand:SI 2 "srcb_operand" "rI")]))]
(match_operand:SI 2 "srcb_operand" "rI")]))]
""
""
"cp%J3 %0,%1,%2")
"cp%J3 %0,%1,%2")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(match_operator 3 "fp_comparison_operator"
(match_operator 3 "fp_comparison_operator"
[
(match_operand:SF 1 "register_operand" "r")
[
(match_operand:SF 1 "register_operand" "r")
(match_operand:SF 2 "register_operand" "r")]))]
(match_operand:SF 2 "register_operand" "r")]))]
...
@@ -351,7 +351,7 @@
...
@@ -351,7 +351,7 @@
[
(set_attr "type" "fadd")
]
)
[
(set_attr "type" "fadd")
]
)
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(match_operator 3 "fp_comparison_operator"
(match_operator 3 "fp_comparison_operator"
[
(match_operand:DF 1 "register_operand" "r")
[
(match_operand:DF 1 "register_operand" "r")
(match_operand:DF 2 "register_operand" "r")]))]
(match_operand:DF 2 "register_operand" "r")]))]
...
@@ -403,12 +403,12 @@
...
@@ -403,12 +403,12 @@
;; 0 and remainder to operand 3.
;; 0 and remainder to operand 3.
(define_expand "divmodsi4"
(define_expand "divmodsi4"
[
(set (match_dup 4)
[
(set (match_dup 4)
(ashiftrt:SI (match_operand:SI 1 "g
en
_reg_operand" "")
(ashiftrt:SI (match_operand:SI 1 "g
pc
_reg_operand" "")
(const_int 31)))
(const_int 31)))
(parallel
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
(parallel
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(div:SI (match_dup 1)
(div:SI (match_dup 1)
(match_operand:SI 2 "g
en
_reg_operand" "")))
(match_operand:SI 2 "g
pc
_reg_operand" "")))
(set (match_operand:SI 3 "g
en
_reg_operand" "")
(set (match_operand:SI 3 "g
pc
_reg_operand" "")
(mod:SI (match_dup 1)
(mod:SI (match_dup 1)
(match_dup 2)))
(match_dup 2)))
(use (match_dup 4))])]
(use (match_dup 4))])]
...
@@ -419,9 +419,9 @@
...
@@ -419,9 +419,9 @@
}")
}")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(div:SI (match_operand:SI 1 "g
en
_reg_operand" "r")
(div:SI (match_operand:SI 1 "g
pc
_reg_operand" "r")
(match_operand:SI 2 "g
en
_reg_operand" "r")))
(match_operand:SI 2 "g
pc
_reg_operand" "r")))
(set (match_operand:SI 3 "register_operand" "=q")
(set (match_operand:SI 3 "register_operand" "=q")
(mod:SI (match_dup 1)
(mod:SI (match_dup 1)
(match_dup 2)))
(match_dup 2)))
...
@@ -433,10 +433,10 @@
...
@@ -433,10 +433,10 @@
;;
;;
;; Similar to DIVIDE.
;; Similar to DIVIDE.
(define_expand "udivmodsi4"
(define_expand "udivmodsi4"
[
(parallel
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
[
(parallel
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(udiv:SI (match_operand:SI 1 "g
en
_reg_operand" "")
(udiv:SI (match_operand:SI 1 "g
pc
_reg_operand" "")
(match_operand:SI 2 "g
en
_reg_operand" "")))
(match_operand:SI 2 "g
pc
_reg_operand" "")))
(set (match_operand:SI 3 "g
en
_reg_operand" "")
(set (match_operand:SI 3 "g
pc
_reg_operand" "")
(umod:SI (match_dup 1)
(umod:SI (match_dup 1)
(match_dup 2)))
(match_dup 2)))
(use (const_int 0))])]
(use (const_int 0))])]
...
@@ -444,9 +444,9 @@
...
@@ -444,9 +444,9 @@
"")
"")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(udiv:SI (match_operand:SI 1 "g
en
_reg_operand" "r")
(udiv:SI (match_operand:SI 1 "g
pc
_reg_operand" "r")
(match_operand:SI 2 "g
en
_reg_operand" "r")))
(match_operand:SI 2 "g
pc
_reg_operand" "r")))
(set (match_operand:SI 3 "register_operand" "=q")
(set (match_operand:SI 3 "register_operand" "=q")
(umod:SI (match_dup 1)
(umod:SI (match_dup 1)
(match_dup 2)))
(match_dup 2)))
...
@@ -583,10 +583,10 @@
...
@@ -583,10 +583,10 @@
;; EXBYTE
;; EXBYTE
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(ior:SI (and:SI (match_operand:SI 1 "srcb_operand" "rI")
(ior:SI (and:SI (match_operand:SI 1 "srcb_operand" "rI")
(const_int -256))
(const_int -256))
(zero_extract:SI (match_operand:SI 2 "g
en
_reg_operand" "r")
(zero_extract:SI (match_operand:SI 2 "g
pc
_reg_operand" "r")
(const_int 8)
(const_int 8)
(ashift:SI (match_operand:SI 3 "register_operand" "b")
(ashift:SI (match_operand:SI 3 "register_operand" "b")
(const_int 3)))))]
(const_int 3)))))]
...
@@ -594,8 +594,8 @@
...
@@ -594,8 +594,8 @@
"exbyte %0,%2,%1")
"exbyte %0,%2,%1")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(zero_extract:SI (match_operand:SI 1 "g
en
_reg_operand" "r")
(zero_extract:SI (match_operand:SI 1 "g
pc
_reg_operand" "r")
(const_int 8)
(const_int 8)
(ashift:SI (match_operand:SI 2 "register_operand" "b")
(ashift:SI (match_operand:SI 2 "register_operand" "b")
(const_int 3))))]
(const_int 3))))]
...
@@ -603,10 +603,10 @@
...
@@ -603,10 +603,10 @@
"exbyte %0,%1,0")
"exbyte %0,%1,0")
(define_insn ""
(define_insn ""
[
(set (zero_extract:SI (match_operand:SI 0 "g
en
_reg_operand" "+r")
[
(set (zero_extract:SI (match_operand:SI 0 "g
pc
_reg_operand" "+r")
(const_int 8)
(const_int 8)
(match_operand:SI 1 "const_24_operand" ""))
(match_operand:SI 1 "const_24_operand" ""))
(zero_extract:SI (match_operand:SI 2 "g
en
_reg_operand" "r")
(zero_extract:SI (match_operand:SI 2 "g
pc
_reg_operand" "r")
(const_int 8)
(const_int 8)
(ashift:SI (match_operand:SI 3 "register_operand" "b")
(ashift:SI (match_operand:SI 3 "register_operand" "b")
(const_int 3))))]
(const_int 3))))]
...
@@ -614,8 +614,8 @@
...
@@ -614,8 +614,8 @@
"exbyte %0,%2,%0")
"exbyte %0,%2,%0")
(define_expand "extzv"
(define_expand "extzv"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(zero_extract:SI (match_operand:SI 1 "g
en
_reg_operand" "")
(zero_extract:SI (match_operand:SI 1 "g
pc
_reg_operand" "")
(match_operand:SI 2 "general_operand" "")
(match_operand:SI 2 "general_operand" "")
(match_operand:SI 3 "general_operand" "")))]
(match_operand:SI 3 "general_operand" "")))]
""
""
...
@@ -639,8 +639,8 @@
...
@@ -639,8 +639,8 @@
}")
}")
(define_expand "extv"
(define_expand "extv"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(zero_extract:SI (match_operand:SI 1 "g
en
_reg_operand" "")
(zero_extract:SI (match_operand:SI 1 "g
pc
_reg_operand" "")
(match_operand:SI 2 "general_operand" "")
(match_operand:SI 2 "general_operand" "")
(match_operand:SI 3 "general_operand" "")))]
(match_operand:SI 3 "general_operand" "")))]
""
""
...
@@ -664,10 +664,10 @@
...
@@ -664,10 +664,10 @@
;; EXHW
;; EXHW
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(ior:SI (and:SI (match_operand:SI 1 "srcb_operand" "rI")
(ior:SI (and:SI (match_operand:SI 1 "srcb_operand" "rI")
(const_int -65536))
(const_int -65536))
(zero_extract:SI (match_operand:SI 2 "g
en
_reg_operand" "r")
(zero_extract:SI (match_operand:SI 2 "g
pc
_reg_operand" "r")
(const_int 16)
(const_int 16)
(ashift:SI (match_operand:SI 3 "register_operand" "b")
(ashift:SI (match_operand:SI 3 "register_operand" "b")
(const_int 3)))))]
(const_int 3)))))]
...
@@ -675,8 +675,8 @@
...
@@ -675,8 +675,8 @@
"exhw %0,%2,%1")
"exhw %0,%2,%1")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(zero_extract:SI (match_operand:SI 1 "g
en
_reg_operand" "r")
(zero_extract:SI (match_operand:SI 1 "g
pc
_reg_operand" "r")
(const_int 16)
(const_int 16)
(ashift:SI (match_operand:SI 2 "register_operand" "b")
(ashift:SI (match_operand:SI 2 "register_operand" "b")
(const_int 3))))]
(const_int 3))))]
...
@@ -684,10 +684,10 @@
...
@@ -684,10 +684,10 @@
"exhw %0,%1,0")
"exhw %0,%1,0")
(define_insn ""
(define_insn ""
[
(set (zero_extract:SI (match_operand:SI 0 "g
en
_reg_operand" "+r")
[
(set (zero_extract:SI (match_operand:SI 0 "g
pc
_reg_operand" "+r")
(const_int 16)
(const_int 16)
(match_operand:SI 1 "const_16_operand" ""))
(match_operand:SI 1 "const_16_operand" ""))
(zero_extract:SI (match_operand:SI 2 "g
en
_reg_operand" "r")
(zero_extract:SI (match_operand:SI 2 "g
pc
_reg_operand" "r")
(const_int 16)
(const_int 16)
(ashift:SI (match_operand:SI 3 "register_operand" "b")
(ashift:SI (match_operand:SI 3 "register_operand" "b")
(const_int 3))))]
(const_int 3))))]
...
@@ -696,8 +696,8 @@
...
@@ -696,8 +696,8 @@
;; EXHWS
;; EXHWS
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(sign_extract:SI (match_operand:SI 1 "g
en
_reg_operand" "r")
(sign_extract:SI (match_operand:SI 1 "g
pc
_reg_operand" "r")
(const_int 16)
(const_int 16)
(ashift:SI (match_operand:SI 2 "register_operand" "b")
(ashift:SI (match_operand:SI 2 "register_operand" "b")
(const_int 3))))]
(const_int 3))))]
...
@@ -706,17 +706,17 @@
...
@@ -706,17 +706,17 @@
;; EXTRACT
;; EXTRACT
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(rotate:SI (match_operand:SI 1 "g
en
_reg_operand" "r")
(rotate:SI (match_operand:SI 1 "g
pc
_reg_operand" "r")
(reg:QI 178)))]
(reg:QI 178)))]
""
""
"extract %0,%1,%1")
"extract %0,%1,%1")
(define_expand "rotlsi3"
(define_expand "rotlsi3"
[
(set (reg:QI 178)
[
(set (reg:QI 178)
(match_operand: SI 2 "g
en
_reg_or_immediate_operand" ""))
(match_operand: SI 2 "g
pc
_reg_or_immediate_operand" ""))
(set (match_operand:SI 0 "g
en
_reg_operand" "")
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(rotate:SI (match_operand:SI 1 "g
en
_reg_operand" "")
(rotate:SI (match_operand:SI 1 "g
pc
_reg_operand" "")
(reg:QI 178)))]
(reg:QI 178)))]
""
""
"
"
...
@@ -893,7 +893,7 @@
...
@@ -893,7 +893,7 @@
;; INBYTE
;; INBYTE
(define_insn ""
(define_insn ""
[
(set (zero_extract:SI (match_operand:SI 0 "g
en
_reg_operand" "+r")
[
(set (zero_extract:SI (match_operand:SI 0 "g
pc
_reg_operand" "+r")
(const_int 8)
(const_int 8)
(ashift:SI (match_operand:SI 2 "register_operand" "b")
(ashift:SI (match_operand:SI 2 "register_operand" "b")
(const_int 3)))
(const_int 3)))
...
@@ -902,11 +902,11 @@
...
@@ -902,11 +902,11 @@
"inbyte %0,%0,%1")
"inbyte %0,%0,%1")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(ior:SI (and:SI (not:SI (ashift:SI (const_int 255)
(ior:SI (and:SI (not:SI (ashift:SI (const_int 255)
(ashift:SI (match_operand:SI 3 "register_operand" "b")
(ashift:SI (match_operand:SI 3 "register_operand" "b")
(const_int 3))))
(const_int 3))))
(match_operand:SI 1 "g
en
_reg_operand" "r"))
(match_operand:SI 1 "g
pc
_reg_operand" "r"))
(ashift:SI (and:SI (match_operand:SI 2 "srcb_operand" "rI")
(ashift:SI (and:SI (match_operand:SI 2 "srcb_operand" "rI")
(const_int 255))
(const_int 255))
(match_operand:SI 4 "const_24_operand" ""))))]
(match_operand:SI 4 "const_24_operand" ""))))]
...
@@ -914,11 +914,11 @@
...
@@ -914,11 +914,11 @@
"inbyte %0,%1,%2")
"inbyte %0,%1,%2")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(ior:SI (and:SI (not:SI (ashift:SI (const_int 255)
(ior:SI (and:SI (not:SI (ashift:SI (const_int 255)
(ashift:SI (match_operand:SI 3 "register_operand" "b")
(ashift:SI (match_operand:SI 3 "register_operand" "b")
(const_int 3))))
(const_int 3))))
(match_operand:SI 1 "g
en
_reg_operand" "r"))
(match_operand:SI 1 "g
pc
_reg_operand" "r"))
(ashift:SI (match_operand:SI 2 "srcb_operand" "rI")
(ashift:SI (match_operand:SI 2 "srcb_operand" "rI")
(match_operand:SI 4 "const_24_operand" ""))))]
(match_operand:SI 4 "const_24_operand" ""))))]
""
""
...
@@ -926,7 +926,7 @@
...
@@ -926,7 +926,7 @@
;; INHW
;; INHW
(define_insn ""
(define_insn ""
[
(set (zero_extract:SI (match_operand:SI 0 "g
en
_reg_operand" "+r")
[
(set (zero_extract:SI (match_operand:SI 0 "g
pc
_reg_operand" "+r")
(const_int 16)
(const_int 16)
(ashift:SI (match_operand:SI 2 "register_operand" "b")
(ashift:SI (match_operand:SI 2 "register_operand" "b")
(const_int 3)))
(const_int 3)))
...
@@ -935,11 +935,11 @@
...
@@ -935,11 +935,11 @@
"inhw %0,%0,%1")
"inhw %0,%0,%1")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(ior:SI (and:SI (not:SI (ashift:SI (const_int 65535)
(ior:SI (and:SI (not:SI (ashift:SI (const_int 65535)
(ashift:SI (match_operand:SI 3 "register_operand" "b")
(ashift:SI (match_operand:SI 3 "register_operand" "b")
(const_int 3))))
(const_int 3))))
(match_operand:SI 1 "g
en
_reg_operand" "r"))
(match_operand:SI 1 "g
pc
_reg_operand" "r"))
(ashift:SI (and:SI (match_operand:SI 2 "srcb_operand" "rI")
(ashift:SI (and:SI (match_operand:SI 2 "srcb_operand" "rI")
(const_int 65535))
(const_int 65535))
(match_operand:SI 4 "const_24_operand" ""))))]
(match_operand:SI 4 "const_24_operand" ""))))]
...
@@ -947,18 +947,18 @@
...
@@ -947,18 +947,18 @@
"inhw %0,%1,%2")
"inhw %0,%1,%2")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(ior:SI (and:SI (not:SI (ashift:SI (const_int 65535)
(ior:SI (and:SI (not:SI (ashift:SI (const_int 65535)
(ashift:SI (match_operand:SI 3 "register_operand" "b")
(ashift:SI (match_operand:SI 3 "register_operand" "b")
(const_int 3))))
(const_int 3))))
(match_operand:SI 1 "g
en
_reg_operand" "r"))
(match_operand:SI 1 "g
pc
_reg_operand" "r"))
(ashift:SI (match_operand:SI 2 "srcb_operand" "rI")
(ashift:SI (match_operand:SI 2 "srcb_operand" "rI")
(match_operand:SI 4 "const_24_operand" ""))))]
(match_operand:SI 4 "const_24_operand" ""))))]
""
""
"inhw %0,%1,%2")
"inhw %0,%1,%2")
(define_expand "insv"
(define_expand "insv"
[
(set (zero_extract:SI (match_operand:SI 0 "g
en
_reg_operand" "")
[
(set (zero_extract:SI (match_operand:SI 0 "g
pc
_reg_operand" "")
(match_operand:SI 1 "general_operand" "")
(match_operand:SI 1 "general_operand" "")
(match_operand:SI 2 "general_operand" ""))
(match_operand:SI 2 "general_operand" ""))
(match_operand:SI 3 "srcb_operand" ""))]
(match_operand:SI 3 "srcb_operand" ""))]
...
@@ -984,8 +984,8 @@
...
@@ -984,8 +984,8 @@
;; LOAD (also used by move insn).
;; LOAD (also used by move insn).
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(mem:SI (and:SI (match_operand:SI 1 "g
en
_reg_operand" "r")
(mem:SI (and:SI (match_operand:SI 1 "g
pc
_reg_operand" "r")
(const_int -4))))
(const_int -4))))
(set (reg:SI 177)
(set (reg:SI 177)
(and:SI (match_dup 1)
(and:SI (match_dup 1)
...
@@ -995,8 +995,8 @@
...
@@ -995,8 +995,8 @@
[
(set_attr "type" "load")
]
)
[
(set_attr "type" "load")
]
)
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(mem:SI (and:SI (match_operand:SI 1 "g
en
_reg_operand" "r")
(mem:SI (and:SI (match_operand:SI 1 "g
pc
_reg_operand" "r")
(const_int -4))))
(const_int -4))))
(set (reg:SI 177)
(set (reg:SI 177)
(and:SI (match_dup 1)
(and:SI (match_dup 1)
...
@@ -1006,7 +1006,7 @@
...
@@ -1006,7 +1006,7 @@
[
(set_attr "type" "load")
]
)
[
(set_attr "type" "load")
]
)
(define_insn ""
(define_insn ""
[
(set (match_operand 0 "g
en
_reg_operand" "=r")
[
(set (match_operand 0 "g
pc
_reg_operand" "=r")
(match_operator 2 "extend_operator"
(match_operator 2 "extend_operator"
[
(match_operand 1 "memory_operand" "m")
]
))]
[
(match_operand 1 "memory_operand" "m")
]
))]
"TARGET_DW_ENABLE && GET_MODE (operands
[
0
]
) == GET_MODE (operands
[
2
]
)"
"TARGET_DW_ENABLE && GET_MODE (operands
[
0
]
) == GET_MODE (operands
[
2
]
)"
...
@@ -1059,7 +1059,7 @@
...
@@ -1059,7 +1059,7 @@
;; Indicate that CR is used and is then clobbered.
;; Indicate that CR is used and is then clobbered.
(define_insn ""
(define_insn ""
[
(set (match_operand 0 "g
en
_reg_operand" "=r")
[
(set (match_operand 0 "g
pc
_reg_operand" "=r")
(match_operand 1 "memory_operand" "m"))
(match_operand 1 "memory_operand" "m"))
(use (reg:SI 179))
(use (reg:SI 179))
(clobber (reg:SI 179))]
(clobber (reg:SI 179))]
...
@@ -1070,7 +1070,7 @@
...
@@ -1070,7 +1070,7 @@
[
(set_attr "type" "load")
]
)
[
(set_attr "type" "load")
]
)
(define_insn ""
(define_insn ""
[
(set (match_operand 0 "g
en
_reg_operand" "=&r")
[
(set (match_operand 0 "g
pc
_reg_operand" "=&r")
(match_operand 1 "memory_operand" "m"))
(match_operand 1 "memory_operand" "m"))
(use (reg:SI 179))
(use (reg:SI 179))
(clobber (reg:SI 179))]
(clobber (reg:SI 179))]
...
@@ -1082,7 +1082,7 @@
...
@@ -1082,7 +1082,7 @@
(define_insn ""
(define_insn ""
[
(match_parallel 0 "load_multiple_operation"
[
(match_parallel 0 "load_multiple_operation"
[
(set (match_operand:SI 1 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 1 "g
pc
_reg_operand" "=r")
(match_operand:SI 2 "memory_operand" "m"))
(match_operand:SI 2 "memory_operand" "m"))
(use (reg:SI 179))
(use (reg:SI 179))
(clobber (reg:SI 179))])]
(clobber (reg:SI 179))])]
...
@@ -1092,7 +1092,7 @@
...
@@ -1092,7 +1092,7 @@
(define_insn ""
(define_insn ""
[
(match_parallel 0 "load_multiple_operation"
[
(match_parallel 0 "load_multiple_operation"
[
(set (match_operand:SI 1 "g
en
_reg_operand" "=&r")
[
(set (match_operand:SI 1 "g
pc
_reg_operand" "=&r")
(match_operand:SI 2 "memory_operand" "m"))
(match_operand:SI 2 "memory_operand" "m"))
(use (reg:SI 179))
(use (reg:SI 179))
(clobber (reg:SI 179))])]
(clobber (reg:SI 179))])]
...
@@ -1103,7 +1103,7 @@
...
@@ -1103,7 +1103,7 @@
;; MTSR (used also by move insn)
;; MTSR (used also by move insn)
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "spec_reg_operand" "=
*h,*
h")
[
(set (match_operand:SI 0 "spec_reg_operand" "=
*h,*
h")
(and:SI (match_operand:SI 1 "g
en
_reg_or_immediate_operand" "r,i")
(and:SI (match_operand:SI 1 "g
pc
_reg_or_immediate_operand" "r,i")
(match_operand:SI 2 "const_int_operand" "n,n")))]
(match_operand:SI 2 "const_int_operand" "n,n")))]
"masks_bits_for_special (operands
[
0
]
, operands
[
2
]
)"
"masks_bits_for_special (operands
[
0
]
, operands
[
2
]
)"
"@
"@
...
@@ -1112,42 +1112,42 @@
...
@@ -1112,42 +1112,42 @@
;; MULTIPLY, MULTM, MULTMU
;; MULTIPLY, MULTM, MULTMU
(define_insn "mulsi3"
(define_insn "mulsi3"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(mult:SI (match_operand:SI 1 "g
en
_reg_operand" "%r")
(mult:SI (match_operand:SI 1 "g
pc
_reg_operand" "%r")
(match_operand:SI 2 "g
en
_reg_operand" "r")))]
(match_operand:SI 2 "g
pc
_reg_operand" "r")))]
""
""
"multiply %0,%1,%2")
"multiply %0,%1,%2")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(subreg:SI
(subreg:SI
(mult:DI
(mult:DI
(sign_extend:DI (match_operand:SI 1 "g
en
_reg_operand" "%r"))
(sign_extend:DI (match_operand:SI 1 "g
pc
_reg_operand" "%r"))
(sign_extend:DI (match_operand:SI 2 "g
en
_reg_operand" "r"))) 0))]
(sign_extend:DI (match_operand:SI 2 "g
pc
_reg_operand" "r"))) 0))]
""
""
"multm %0,%1,%2")
"multm %0,%1,%2")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(subreg:SI
(subreg:SI
(mult:DI
(mult:DI
(zero_extend:DI (match_operand:SI 1 "g
en
_reg_operand" "%r"))
(zero_extend:DI (match_operand:SI 1 "g
pc
_reg_operand" "%r"))
(zero_extend:DI (match_operand:SI 2 "g
en
_reg_operand" "r"))) 0))]
(zero_extend:DI (match_operand:SI 2 "g
pc
_reg_operand" "r"))) 0))]
""
""
"multmu %0,%1,%2")
"multmu %0,%1,%2")
(define_insn "mulsidi3"
(define_insn "mulsidi3"
[
(set (match_operand:DI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:DI 0 "g
pc
_reg_operand" "=r")
(mult:DI (sign_extend:DI (match_operand:SI 1 "g
en
_reg_operand" "r"))
(mult:DI (sign_extend:DI (match_operand:SI 1 "g
pc
_reg_operand" "r"))
(sign_extend:DI (match_operand:SI 2 "g
en
_reg_operand" "r"))))]
(sign_extend:DI (match_operand:SI 2 "g
pc
_reg_operand" "r"))))]
""
""
"multiply %L0,%1,%2
\;
multm %0,%1,%2"
"multiply %L0,%1,%2
\;
multm %0,%1,%2"
[
(set_attr "type" "multi")
]
)
[
(set_attr "type" "multi")
]
)
(define_split
(define_split
[
(set (match_operand:DI 0 "g
en
_reg_operand" "")
[
(set (match_operand:DI 0 "g
pc
_reg_operand" "")
(mult:DI (sign_extend:DI (match_operand:SI 1 "g
en
_reg_operand" ""))
(mult:DI (sign_extend:DI (match_operand:SI 1 "g
pc
_reg_operand" ""))
(sign_extend:DI (match_operand:SI 2 "g
en
_reg_operand" ""))))]
(sign_extend:DI (match_operand:SI 2 "g
pc
_reg_operand" ""))))]
"reload_completed"
"reload_completed"
[
(set (match_dup 3)
[
(set (match_dup 3)
(mult:SI (match_dup 1) (match_dup 2)))
(mult:SI (match_dup 1) (match_dup 2)))
...
@@ -1160,17 +1160,17 @@
...
@@ -1160,17 +1160,17 @@
operands
[
4
]
= operand_subword (operands
[
1
]
, 0, 1, DImode); } ")
operands
[
4
]
= operand_subword (operands
[
1
]
, 0, 1, DImode); } ")
(define_insn "umulsidi3"
(define_insn "umulsidi3"
[
(set (match_operand:DI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:DI 0 "g
pc
_reg_operand" "=r")
(mult:DI (zero_extend:DI (match_operand:SI 1 "g
en
_reg_operand" "r"))
(mult:DI (zero_extend:DI (match_operand:SI 1 "g
pc
_reg_operand" "r"))
(zero_extend:DI (match_operand:SI 2 "g
en
_reg_operand" "r"))))]
(zero_extend:DI (match_operand:SI 2 "g
pc
_reg_operand" "r"))))]
""
""
"multiplu %L0,%1,%2
\;
multmu %0,%1,%2"
"multiplu %L0,%1,%2
\;
multmu %0,%1,%2"
[
(set_attr "type" "multi")
]
)
[
(set_attr "type" "multi")
]
)
(define_split
(define_split
[
(set (match_operand:DI 0 "g
en
_reg_operand" "")
[
(set (match_operand:DI 0 "g
pc
_reg_operand" "")
(mult:DI (zero_extend:DI (match_operand:SI 1 "g
en
_reg_operand" ""))
(mult:DI (zero_extend:DI (match_operand:SI 1 "g
pc
_reg_operand" ""))
(zero_extend:DI (match_operand:SI 2 "g
en
_reg_operand" ""))))]
(zero_extend:DI (match_operand:SI 2 "g
pc
_reg_operand" ""))))]
"reload_completed"
"reload_completed"
[
(set (match_dup 3)
[
(set (match_dup 3)
(mult:SI (match_dup 1) (match_dup 2)))
(mult:SI (match_dup 1) (match_dup 2)))
...
@@ -1183,58 +1183,58 @@
...
@@ -1183,58 +1183,58 @@
;; NAND
;; NAND
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(ior:SI (not:SI (match_operand:SI 1 "g
en
_reg_operand" "%r"))
(ior:SI (not:SI (match_operand:SI 1 "g
pc
_reg_operand" "%r"))
(not:SI (match_operand:SI 2 "srcb_operand" "rI"))))]
(not:SI (match_operand:SI 2 "srcb_operand" "rI"))))]
""
""
"nand %0,%1,%2")
"nand %0,%1,%2")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(ior:SI (not:SI (match_operand:SI 1 "g
en
_reg_operand" "r"))
(ior:SI (not:SI (match_operand:SI 1 "g
pc
_reg_operand" "r"))
(match_operand:SI 2 "const_int_operand" "K")))]
(match_operand:SI 2 "const_int_operand" "K")))]
"((unsigned) ~ INTVAL (operands
[
2
]
)) < 256"
"((unsigned) ~ INTVAL (operands
[
2
]
)) < 256"
"nand %0,%1,%C2")
"nand %0,%1,%C2")
;; NOR
;; NOR
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(and:SI (not:SI (match_operand:SI 1 "g
en
_reg_operand" "%r"))
(and:SI (not:SI (match_operand:SI 1 "g
pc
_reg_operand" "%r"))
(not:SI (match_operand:SI 2 "srcb_operand" "rI"))))]
(not:SI (match_operand:SI 2 "srcb_operand" "rI"))))]
""
""
"nor %0,%1,%2")
"nor %0,%1,%2")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(and:SI (not:SI (match_operand:SI 1 "g
en
_reg_operand" "r"))
(and:SI (not:SI (match_operand:SI 1 "g
pc
_reg_operand" "r"))
(match_operand:SI 2 "const_int_operand" "K")))]
(match_operand:SI 2 "const_int_operand" "K")))]
"((unsigned) ~ INTVAL (operands
[
2
]
)) < 256"
"((unsigned) ~ INTVAL (operands
[
2
]
)) < 256"
"nor %0,%1,%C2")
"nor %0,%1,%C2")
(define_insn "one_cmplsi2"
(define_insn "one_cmplsi2"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(not:SI (match_operand:SI 1 "g
en
_reg_operand" "r")))]
(not:SI (match_operand:SI 1 "g
pc
_reg_operand" "r")))]
""
""
"nor %0,%1,0")
"nor %0,%1,0")
;; OR/ORN
;; OR/ORN
(define_expand "iorsi3"
(define_expand "iorsi3"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(ior:SI (match_operand:SI 1 "g
en
_reg_operand" "")
(ior:SI (match_operand:SI 1 "g
pc
_reg_operand" "")
(match_operand:SI 2 "srcb_operand" "")))]
(match_operand:SI 2 "srcb_operand" "")))]
""
""
"")
"")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(ior:SI (match_operand:SI 1 "g
en
_reg_operand" "%r")
(ior:SI (match_operand:SI 1 "g
pc
_reg_operand" "%r")
(match_operand:SI 2 "srcb_operand" "rI")))]
(match_operand:SI 2 "srcb_operand" "rI")))]
"! TARGET_29050"
"! TARGET_29050"
"or %0,%1,%2")
"or %0,%1,%2")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r,r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r,r")
(ior:SI (match_operand:SI 1 "g
en
_reg_operand" "%r,r")
(ior:SI (match_operand:SI 1 "g
pc
_reg_operand" "%r,r")
(match_operand:SI 2 "srcb_operand" "rI,K")))]
(match_operand:SI 2 "srcb_operand" "rI,K")))]
"TARGET_29050"
"TARGET_29050"
"@
"@
...
@@ -1249,24 +1249,24 @@
...
@@ -1249,24 +1249,24 @@
"aseq 0x40,gr1,gr1")
"aseq 0x40,gr1,gr1")
(define_insn "ashlsi3"
(define_insn "ashlsi3"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(ashift:SI (match_operand:SI 1 "g
en
_reg_operand" "r")
(ashift:SI (match_operand:SI 1 "g
pc
_reg_operand" "r")
(match_operand:QI 2 "srcb_operand" "rn")))]
(match_operand:QI 2 "srcb_operand" "rn")))]
""
""
"sll %0,%1,%Q2")
"sll %0,%1,%Q2")
;; SRA
;; SRA
(define_insn "ashrsi3"
(define_insn "ashrsi3"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(ashiftrt:SI (match_operand:SI 1 "g
en
_reg_operand" "r")
(ashiftrt:SI (match_operand:SI 1 "g
pc
_reg_operand" "r")
(match_operand:QI 2 "srcb_operand" "rn")))]
(match_operand:QI 2 "srcb_operand" "rn")))]
""
""
"sra %0,%1,%Q2")
"sra %0,%1,%Q2")
;; SRL
;; SRL
(define_insn "lshrsi3"
(define_insn "lshrsi3"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(lshiftrt:SI (match_operand:SI 1 "g
en
_reg_operand" "r")
(lshiftrt:SI (match_operand:SI 1 "g
pc
_reg_operand" "r")
(match_operand:QI 2 "srcb_operand" "rn")))]
(match_operand:QI 2 "srcb_operand" "rn")))]
""
""
"srl %0,%1,%Q2")
"srl %0,%1,%Q2")
...
@@ -1276,17 +1276,17 @@
...
@@ -1276,17 +1276,17 @@
;; These somewhat bogus patterns exist to set OPT = 001/010 for partial-word
;; These somewhat bogus patterns exist to set OPT = 001/010 for partial-word
;; stores on systems with DW not set.
;; stores on systems with DW not set.
(define_insn ""
(define_insn ""
[
(set (mem:SI (and:SI (match_operand:SI 0 "g
en
_reg_operand" "r")
[
(set (mem:SI (and:SI (match_operand:SI 0 "g
pc
_reg_operand" "r")
(const_int -4)))
(const_int -4)))
(match_operand:SI 1 "g
en
_reg_operand" "r"))]
(match_operand:SI 1 "g
pc
_reg_operand" "r"))]
"! TARGET_DW_ENABLE"
"! TARGET_DW_ENABLE"
"store 0,1,%1,%0"
"store 0,1,%1,%0"
[
(set_attr "type" "store")
]
)
[
(set_attr "type" "store")
]
)
(define_insn ""
(define_insn ""
[
(set (mem:SI (and:SI (match_operand:SI 0 "g
en
_reg_operand" "r")
[
(set (mem:SI (and:SI (match_operand:SI 0 "g
pc
_reg_operand" "r")
(const_int -3)))
(const_int -3)))
(match_operand:SI 1 "g
en
_reg_operand" "r"))]
(match_operand:SI 1 "g
pc
_reg_operand" "r"))]
"! TARGET_DW_ENABLE"
"! TARGET_DW_ENABLE"
"store 0,2,%1,%0"
"store 0,2,%1,%0"
[
(set_attr "type" "store")
]
)
[
(set_attr "type" "store")
]
)
...
@@ -1396,7 +1396,7 @@
...
@@ -1396,7 +1396,7 @@
(define_insn ""
(define_insn ""
[
(set (match_operand 0 "memory_operand" "=m")
[
(set (match_operand 0 "memory_operand" "=m")
(match_operand 1 "g
en
_reg_operand" "r"))
(match_operand 1 "g
pc
_reg_operand" "r"))
(clobber (reg:SI 179))]
(clobber (reg:SI 179))]
"!TARGET_NO_STOREM_BUG
"!TARGET_NO_STOREM_BUG
&& GET_MODE (operands
[
0
]
) == GET_MODE (operands
[
1
]
)
&& GET_MODE (operands
[
0
]
) == GET_MODE (operands
[
1
]
)
...
@@ -1407,7 +1407,7 @@
...
@@ -1407,7 +1407,7 @@
(define_insn ""
(define_insn ""
[
(match_parallel 0 "store_multiple_operation"
[
(match_parallel 0 "store_multiple_operation"
[
(set (match_operand:SI 1 "memory_operand" "=m")
[
(set (match_operand:SI 1 "memory_operand" "=m")
(match_operand:SI 2 "g
en
_reg_operand" "r"))
(match_operand:SI 2 "g
pc
_reg_operand" "r"))
(clobber (reg:SI 179))])]
(clobber (reg:SI 179))])]
"!TARGET_NO_STOREM_BUG"
"!TARGET_NO_STOREM_BUG"
"mtsrim cr,%V0
\;
storem 0,0,%2,%1"
"mtsrim cr,%V0
\;
storem 0,0,%2,%1"
...
@@ -1415,7 +1415,7 @@
...
@@ -1415,7 +1415,7 @@
(define_insn ""
(define_insn ""
[
(set (match_operand 0 "memory_operand" "=m")
[
(set (match_operand 0 "memory_operand" "=m")
(match_operand 1 "g
en
_reg_operand" "r"))
(match_operand 1 "g
pc
_reg_operand" "r"))
(use (reg:SI 179))
(use (reg:SI 179))
(clobber (reg:SI 179))]
(clobber (reg:SI 179))]
"TARGET_NO_STOREM_BUG
"TARGET_NO_STOREM_BUG
...
@@ -1427,7 +1427,7 @@
...
@@ -1427,7 +1427,7 @@
(define_insn ""
(define_insn ""
[
(match_parallel 0 "store_multiple_operation"
[
(match_parallel 0 "store_multiple_operation"
[
(set (match_operand:SI 1 "memory_operand" "=m")
[
(set (match_operand:SI 1 "memory_operand" "=m")
(match_operand:SI 2 "g
en
_reg_operand" "r"))
(match_operand:SI 2 "g
pc
_reg_operand" "r"))
(use (reg:SI 179))
(use (reg:SI 179))
(clobber (reg:SI 179))])]
(clobber (reg:SI 179))])]
"TARGET_NO_STOREM_BUG"
"TARGET_NO_STOREM_BUG"
...
@@ -1439,7 +1439,7 @@
...
@@ -1439,7 +1439,7 @@
;; Either operand can be a register or an 8-bit constant, but both cannot be
;; Either operand can be a register or an 8-bit constant, but both cannot be
;; constants (can't usually occur anyway).
;; constants (can't usually occur anyway).
(define_expand "subsi3"
(define_expand "subsi3"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(minus:SI (match_operand:SI 1 "srcb_operand" "")
(minus:SI (match_operand:SI 1 "srcb_operand" "")
(match_operand:SI 2 "srcb_operand" "")))]
(match_operand:SI 2 "srcb_operand" "")))]
""
""
...
@@ -1451,7 +1451,7 @@
...
@@ -1451,7 +1451,7 @@
}")
}")
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r,r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r,r")
(minus:SI (match_operand:SI 1 "srcb_operand" "r,I")
(minus:SI (match_operand:SI 1 "srcb_operand" "r,I")
(match_operand:SI 2 "srcb_operand" "rI,r")))]
(match_operand:SI 2 "srcb_operand" "rI,r")))]
"register_operand (operands
[
1
]
, SImode)
"register_operand (operands
[
1
]
, SImode)
...
@@ -1461,39 +1461,39 @@
...
@@ -1461,39 +1461,39 @@
subr %0,%2,%1")
subr %0,%2,%1")
(define_insn "subdi3"
(define_insn "subdi3"
[
(set (match_operand:DI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:DI 0 "g
pc
_reg_operand" "=r")
(minus:DI (match_operand:DI 1 "g
en
_reg_operand" "r")
(minus:DI (match_operand:DI 1 "g
pc
_reg_operand" "r")
(match_operand:DI 2 "g
en
_reg_operand" "r")))]
(match_operand:DI 2 "g
pc
_reg_operand" "r")))]
""
""
"sub %L0,%L1,%L2
\;
subc %0,%1,%2"
"sub %L0,%L1,%L2
\;
subc %0,%1,%2"
[
(set_attr "type" "multi")
]
)
[
(set_attr "type" "multi")
]
)
;; SUBR (also used above in SUB)
;; SUBR (also used above in SUB)
(define_insn "negdi2"
(define_insn "negdi2"
[
(set (match_operand:DI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:DI 0 "g
pc
_reg_operand" "=r")
(neg:DI (match_operand:DI 1 "g
en
_reg_operand" "r")))]
(neg:DI (match_operand:DI 1 "g
pc
_reg_operand" "r")))]
""
""
"subr %L0,%L1,0
\;
subrc %0,%1,0"
"subr %L0,%L1,0
\;
subrc %0,%1,0"
[
(set_attr "type" "multi")
]
)
[
(set_attr "type" "multi")
]
)
(define_insn "negsi2"
(define_insn "negsi2"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(neg:SI (match_operand:SI 1 "g
en
_reg_operand" "r")))]
(neg:SI (match_operand:SI 1 "g
pc
_reg_operand" "r")))]
""
""
"subr %0,%1,0")
"subr %0,%1,0")
;; XNOR
;; XNOR
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(not:SI (xor:SI (match_operand:SI 1 "g
en
_reg_operand" "%r")
(not:SI (xor:SI (match_operand:SI 1 "g
pc
_reg_operand" "%r")
(match_operand:SI 2 "srcb_operand" "rI"))))]
(match_operand:SI 2 "srcb_operand" "rI"))))]
""
""
"xnor %0,%1,%2")
"xnor %0,%1,%2")
;; XOR
;; XOR
(define_insn "xorsi3"
(define_insn "xorsi3"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(xor:SI (match_operand:SI 1 "g
en
_reg_operand" "%r")
(xor:SI (match_operand:SI 1 "g
pc
_reg_operand" "%r")
(match_operand:SI 2 "srcb_operand" "rI")))]
(match_operand:SI 2 "srcb_operand" "rI")))]
""
""
"xor %0,%1,%2")
"xor %0,%1,%2")
...
@@ -1567,28 +1567,28 @@
...
@@ -1567,28 +1567,28 @@
;; Sign extend and truncation operations.
;; Sign extend and truncation operations.
(define_insn "zero_extendqihi2"
(define_insn "zero_extendqihi2"
[
(set (match_operand:HI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:HI 0 "g
pc
_reg_operand" "=r")
(zero_extend:HI (match_operand:QI 1 "g
en
_reg_operand" "r")))]
(zero_extend:HI (match_operand:QI 1 "g
pc
_reg_operand" "r")))]
""
""
"and %0,%1,255")
"and %0,%1,255")
(define_insn "zero_extendqisi2"
(define_insn "zero_extendqisi2"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(zero_extend:SI (match_operand:QI 1 "g
en
_reg_operand" "r")))]
(zero_extend:SI (match_operand:QI 1 "g
pc
_reg_operand" "r")))]
""
""
"and %0,%1,255")
"and %0,%1,255")
(define_insn "zero_extendhisi2"
(define_insn "zero_extendhisi2"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "=r")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "=r")
(zero_extend:SI (match_operand:HI 1 "g
en
_reg_operand" "0")))]
(zero_extend:SI (match_operand:HI 1 "g
pc
_reg_operand" "0")))]
""
""
"consth %0,0")
"consth %0,0")
(define_expand "extendqihi2"
(define_expand "extendqihi2"
[
(set (match_dup 2)
[
(set (match_dup 2)
(ashift:SI (match_operand:QI 1 "g
en
_reg_operand" "")
(ashift:SI (match_operand:QI 1 "g
pc
_reg_operand" "")
(const_int 24)))
(const_int 24)))
(set (match_operand:HI 0 "g
en
_reg_operand" "")
(set (match_operand:HI 0 "g
pc
_reg_operand" "")
(ashiftrt:SI (match_dup 2)
(ashiftrt:SI (match_dup 2)
(const_int 24)))]
(const_int 24)))]
""
""
...
@@ -1599,9 +1599,9 @@
...
@@ -1599,9 +1599,9 @@
(define_expand "extendqisi2"
(define_expand "extendqisi2"
[
(set (match_dup 2)
[
(set (match_dup 2)
(ashift:SI (match_operand:QI 1 "g
en
_reg_operand" "")
(ashift:SI (match_operand:QI 1 "g
pc
_reg_operand" "")
(const_int 24)))
(const_int 24)))
(set (match_operand:SI 0 "g
en
_reg_operand" "")
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(ashiftrt:SI (match_dup 2)
(ashiftrt:SI (match_dup 2)
(const_int 24)))]
(const_int 24)))]
""
""
...
@@ -1611,9 +1611,9 @@
...
@@ -1611,9 +1611,9 @@
(define_expand "extendhisi2"
(define_expand "extendhisi2"
[
(set (match_dup 2)
[
(set (match_dup 2)
(ashift:SI (match_operand:HI 1 "g
en
_reg_operand" "")
(ashift:SI (match_operand:HI 1 "g
pc
_reg_operand" "")
(const_int 16)))
(const_int 16)))
(set (match_operand:SI 0 "g
en
_reg_operand" "")
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(ashiftrt:SI (match_dup 2)
(ashiftrt:SI (match_dup 2)
(const_int 16)))]
(const_int 16)))]
""
""
...
@@ -1632,7 +1632,7 @@
...
@@ -1632,7 +1632,7 @@
""
""
"
"
{
{
if (GET_CODE (operands
[
0
]
) == MEM && ! g
en
_reg_operand (operands
[
1
]
, SImode))
if (GET_CODE (operands
[
0
]
) == MEM && ! g
pc
_reg_operand (operands
[
1
]
, SImode))
operands
[
1
]
= copy_to_mode_reg (SImode, operands
[
1
]
);
operands
[
1
]
= copy_to_mode_reg (SImode, operands
[
1
]
);
else if (spec_reg_operand (operands
[
0
]
, SImode)
else if (spec_reg_operand (operands
[
0
]
, SImode)
&& ! (register_operand (operands
[
1
]
, SImode)
&& ! (register_operand (operands
[
1
]
, SImode)
...
@@ -1641,7 +1641,7 @@
...
@@ -1641,7 +1641,7 @@
}")
}")
(define_split
(define_split
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(match_operand:SI 1 "long_const_operand" ""))]
(match_operand:SI 1 "long_const_operand" ""))]
""
""
[
(set (match_dup 0)
[
(set (match_dup 0)
...
@@ -1659,12 +1659,12 @@
...
@@ -1659,12 +1659,12 @@
;; where they aren't.
;; where they aren't.
(define_expand "loadhi"
(define_expand "loadhi"
[
(parallel
[
(set (match_dup 2)
[
(parallel
[
(set (match_dup 2)
(mem:SI (and:SI (match_operand:SI 0 "g
en
_reg_operand" "")
(mem:SI (and:SI (match_operand:SI 0 "g
pc
_reg_operand" "")
(const_int -4))))
(const_int -4))))
(set (reg:SI 177)
(set (reg:SI 177)
(and:SI (match_dup 0)
(and:SI (match_dup 0)
(const_int 2)))])
(const_int 2)))])
(set (match_operand:HI 1 "g
en
_reg_operand" "")
(set (match_operand:HI 1 "g
pc
_reg_operand" "")
(zero_extract:SI (match_dup 2)
(zero_extract:SI (match_dup 2)
(const_int 16)
(const_int 16)
(ashift:SI (reg:SI 177)
(ashift:SI (reg:SI 177)
...
@@ -1681,7 +1681,7 @@
...
@@ -1681,7 +1681,7 @@
(define_expand "storehinhww"
(define_expand "storehinhww"
[
(parallel
[
(set (match_dup 2)
[
(parallel
[
(set (match_dup 2)
(mem:SI (and:SI (match_operand:SI 0 "g
en
_reg_operand" "")
(mem:SI (and:SI (match_operand:SI 0 "g
pc
_reg_operand" "")
(const_int -4))))
(const_int -4))))
(set (reg:SI 177)
(set (reg:SI 177)
(and:SI (match_dup 0)
(and:SI (match_dup 0)
...
@@ -1690,7 +1690,7 @@
...
@@ -1690,7 +1690,7 @@
(const_int 8)
(const_int 8)
(ashift:SI (reg:SI 177)
(ashift:SI (reg:SI 177)
(const_int 3)))
(const_int 3)))
(match_operand:HI 1 "g
en
_reg_operand" ""))
(match_operand:HI 1 "g
pc
_reg_operand" ""))
(set (mem:SI (match_dup 0))
(set (mem:SI (match_dup 0))
(match_dup 2))]
(match_dup 2))]
""
""
...
@@ -1705,13 +1705,13 @@
...
@@ -1705,13 +1705,13 @@
(define_expand "storehihww"
(define_expand "storehihww"
[
(set (reg:SI 177)
[
(set (reg:SI 177)
(and:SI (match_operand:SI 0 "g
en
_reg_operand" "")
(and:SI (match_operand:SI 0 "g
pc
_reg_operand" "")
(const_int 3)))
(const_int 3)))
(set (match_dup 2)
(set (match_dup 2)
(ior:SI (and:SI (not:SI (ashift:SI (const_int 65535)
(ior:SI (and:SI (not:SI (ashift:SI (const_int 65535)
(ashift:SI (reg:SI 177)
(ashift:SI (reg:SI 177)
(const_int 3))))
(const_int 3))))
(match_operand:HI 1 "g
en
_reg_operand" ""))
(match_operand:HI 1 "g
pc
_reg_operand" ""))
(ashift:SI (and:SI (match_dup 1)
(ashift:SI (and:SI (match_dup 1)
(const_int 65535))
(const_int 65535))
(ashift:SI (reg:SI 177)
(ashift:SI (reg:SI 177)
...
@@ -1736,7 +1736,7 @@
...
@@ -1736,7 +1736,7 @@
"
"
{ if (GET_CODE (operands
[
0
]
) == MEM)
{ if (GET_CODE (operands
[
0
]
) == MEM)
{
{
if (! g
en
_reg_operand (operands
[
1
]
, HImode))
if (! g
pc
_reg_operand (operands
[
1
]
, HImode))
operands
[
1
]
= copy_to_mode_reg (HImode, operands
[
1
]
);
operands
[
1
]
= copy_to_mode_reg (HImode, operands
[
1
]
);
if (! TARGET_DW_ENABLE)
if (! TARGET_DW_ENABLE)
{
{
...
@@ -1760,12 +1760,12 @@
...
@@ -1760,12 +1760,12 @@
;; Subroutines to load/store bytes. Use TAV (gr121) as scratch.
;; Subroutines to load/store bytes. Use TAV (gr121) as scratch.
(define_expand "loadqi"
(define_expand "loadqi"
[
(parallel
[
(set (match_dup 2)
[
(parallel
[
(set (match_dup 2)
(mem:SI (and:SI (match_operand:SI 0 "g
en
_reg_operand" "")
(mem:SI (and:SI (match_operand:SI 0 "g
pc
_reg_operand" "")
(const_int -4))))
(const_int -4))))
(set (reg:SI 177)
(set (reg:SI 177)
(and:SI (match_dup 0)
(and:SI (match_dup 0)
(const_int 3)))])
(const_int 3)))])
(set (match_operand:QI 1 "g
en
_reg_operand" "")
(set (match_operand:QI 1 "g
pc
_reg_operand" "")
(zero_extract:SI (match_dup 2)
(zero_extract:SI (match_dup 2)
(const_int 8)
(const_int 8)
(ashift:SI (reg:SI 177)
(ashift:SI (reg:SI 177)
...
@@ -1782,7 +1782,7 @@
...
@@ -1782,7 +1782,7 @@
(define_expand "storeqinhww"
(define_expand "storeqinhww"
[
(parallel
[
(set (match_dup 2)
[
(parallel
[
(set (match_dup 2)
(mem:SI (and:SI (match_operand:SI 0 "g
en
_reg_operand" "")
(mem:SI (and:SI (match_operand:SI 0 "g
pc
_reg_operand" "")
(const_int -4))))
(const_int -4))))
(set (reg:SI 177)
(set (reg:SI 177)
(and:SI (match_dup 0)
(and:SI (match_dup 0)
...
@@ -1791,7 +1791,7 @@
...
@@ -1791,7 +1791,7 @@
(const_int 8)
(const_int 8)
(ashift:SI (reg:SI 177)
(ashift:SI (reg:SI 177)
(const_int 3)))
(const_int 3)))
(match_operand:QI 1 "g
en
_reg_operand" ""))
(match_operand:QI 1 "g
pc
_reg_operand" ""))
(set (mem:SI (match_dup 0))
(set (mem:SI (match_dup 0))
(match_dup 2))]
(match_dup 2))]
""
""
...
@@ -1806,13 +1806,13 @@
...
@@ -1806,13 +1806,13 @@
(define_expand "storeqihww"
(define_expand "storeqihww"
[
(set (reg:SI 177)
[
(set (reg:SI 177)
(and:SI (match_operand:SI 0 "g
en
_reg_operand" "")
(and:SI (match_operand:SI 0 "g
pc
_reg_operand" "")
(const_int 3)))
(const_int 3)))
(set (match_dup 2)
(set (match_dup 2)
(ior:SI (and:SI (not:SI (ashift:SI (const_int 255)
(ior:SI (and:SI (not:SI (ashift:SI (const_int 255)
(ashift:SI (reg:SI 177)
(ashift:SI (reg:SI 177)
(const_int 3))))
(const_int 3))))
(match_operand:HI 1 "g
en
_reg_operand" ""))
(match_operand:HI 1 "g
pc
_reg_operand" ""))
(ashift:SI (and:SI (match_dup 1)
(ashift:SI (and:SI (match_dup 1)
(const_int 255))
(const_int 255))
(ashift:SI (reg:SI 177)
(ashift:SI (reg:SI 177)
...
@@ -1837,7 +1837,7 @@
...
@@ -1837,7 +1837,7 @@
"
"
{ if (GET_CODE (operands
[
0
]
) == MEM)
{ if (GET_CODE (operands
[
0
]
) == MEM)
{
{
if (! g
en
_reg_operand (operands
[
1
]
, QImode))
if (! g
pc
_reg_operand (operands
[
1
]
, QImode))
operands
[
1
]
= copy_to_mode_reg (QImode, operands
[
1
]
);
operands
[
1
]
= copy_to_mode_reg (QImode, operands
[
1
]
);
if (! TARGET_DW_ENABLE)
if (! TARGET_DW_ENABLE)
{
{
...
@@ -1865,8 +1865,8 @@
...
@@ -1865,8 +1865,8 @@
(define_insn ""
(define_insn ""
[
(set (match_operand:SF 0 "out_operand" "=r,r,r,r,m")
[
(set (match_operand:SF 0 "out_operand" "=r,r,r,r,m")
(match_operand:SF 1 "in_operand" "r,E,F,m,r"))]
(match_operand:SF 1 "in_operand" "r,E,F,m,r"))]
"(g
en
_reg_operand (operands
[
0
]
, SFmode)
"(g
pc
_reg_operand (operands
[
0
]
, SFmode)
|| g
en
_reg_operand (operands
[
1
]
, SFmode))
|| g
pc
_reg_operand (operands
[
1
]
, SFmode))
&& ! TARGET_29050"
&& ! TARGET_29050"
"@
"@
sll %0,%1,0
sll %0,%1,0
...
@@ -1879,8 +1879,8 @@
...
@@ -1879,8 +1879,8 @@
(define_insn ""
(define_insn ""
[
(set (match_operand:SF 0 "out_operand" "=r,r,r,r,m,
*
a,r")
[
(set (match_operand:SF 0 "out_operand" "=r,r,r,r,m,
*
a,r")
(match_operand:SF 1 "in_operand" "r,E,F,m,r,r,
*
a"))]
(match_operand:SF 1 "in_operand" "r,E,F,m,r,r,
*
a"))]
"(g
en
_reg_operand (operands
[
0
]
, SFmode)
"(g
pc
_reg_operand (operands
[
0
]
, SFmode)
|| g
en
_reg_operand (operands
[
1
]
, SFmode))
|| g
pc
_reg_operand (operands
[
1
]
, SFmode))
&& TARGET_29050"
&& TARGET_29050"
"@
"@
sll %0,%1,0
sll %0,%1,0
...
@@ -1911,8 +1911,8 @@
...
@@ -1911,8 +1911,8 @@
[
(set (match_operand:DF 0 "out_operand" "=r,r,r,m")
[
(set (match_operand:DF 0 "out_operand" "=r,r,r,m")
(match_operand:DF 1 "in_operand" "rE,F,m,r"))
(match_operand:DF 1 "in_operand" "rE,F,m,r"))
(clobber (reg:SI 179))]
(clobber (reg:SI 179))]
"(g
en
_reg_operand (operands
[
0
]
, DFmode)
"(g
pc
_reg_operand (operands
[
0
]
, DFmode)
|| g
en
_reg_operand (operands
[
1
]
, DFmode))
|| g
pc
_reg_operand (operands
[
1
]
, DFmode))
&& ! TARGET_29050"
&& ! TARGET_29050"
"@
"@
#
#
...
@@ -1925,8 +1925,8 @@
...
@@ -1925,8 +1925,8 @@
[
(set (match_operand:DF 0 "out_operand" "=r,r,&r,m,
*
a,r")
[
(set (match_operand:DF 0 "out_operand" "=r,r,&r,m,
*
a,r")
(match_operand:DF 1 "in_operand" "rE,F,m,r,r,
*
a"))
(match_operand:DF 1 "in_operand" "rE,F,m,r,r,
*
a"))
(clobber (reg:SI 179))]
(clobber (reg:SI 179))]
"(g
en
_reg_operand (operands
[
0
]
, DFmode)
"(g
pc
_reg_operand (operands
[
0
]
, DFmode)
|| g
en
_reg_operand (operands
[
1
]
, DFmode))
|| g
pc
_reg_operand (operands
[
1
]
, DFmode))
&& TARGET_29050"
&& TARGET_29050"
"@
"@
#
#
...
@@ -1945,8 +1945,8 @@
...
@@ -1945,8 +1945,8 @@
;; the lowest register of the first operand is the highest register of the
;; the lowest register of the first operand is the highest register of the
;; second operand.
;; second operand.
(define_split
(define_split
[
(set (match_operand:DF 0 "g
en
_reg_operand" "")
[
(set (match_operand:DF 0 "g
pc
_reg_operand" "")
(match_operand:DF 1 "g
en
_reg_or_float_constant_operand" ""))
(match_operand:DF 1 "g
pc
_reg_or_float_constant_operand" ""))
(clobber (reg:SI 179))]
(clobber (reg:SI 179))]
"reload_completed"
"reload_completed"
[
(set (match_dup 2) (match_dup 3))
[
(set (match_dup 2) (match_dup 3))
...
@@ -1992,8 +1992,8 @@
...
@@ -1992,8 +1992,8 @@
[
(set (match_operand:DI 0 "out_operand" "=r,r,m")
[
(set (match_operand:DI 0 "out_operand" "=r,r,m")
(match_operand:DI 1 "in_operand" "rn,m,r"))
(match_operand:DI 1 "in_operand" "rn,m,r"))
(clobber (reg:SI 179))]
(clobber (reg:SI 179))]
"(g
en
_reg_operand (operands
[
0
]
, DImode)
"(g
pc
_reg_operand (operands
[
0
]
, DImode)
|| g
en
_reg_operand (operands
[
1
]
, DImode))
|| g
pc
_reg_operand (operands
[
1
]
, DImode))
&& ! TARGET_29050"
&& ! TARGET_29050"
"@
"@
#
#
...
@@ -2005,8 +2005,8 @@
...
@@ -2005,8 +2005,8 @@
[
(set (match_operand:DI 0 "out_operand" "=r,&r,m")
[
(set (match_operand:DI 0 "out_operand" "=r,&r,m")
(match_operand:DI 1 "in_operand" "rn,m,r"))
(match_operand:DI 1 "in_operand" "rn,m,r"))
(clobber (reg:SI 179))]
(clobber (reg:SI 179))]
"(g
en
_reg_operand (operands
[
0
]
, DImode)
"(g
pc
_reg_operand (operands
[
0
]
, DImode)
|| g
en
_reg_operand (operands
[
1
]
, DImode))
|| g
pc
_reg_operand (operands
[
1
]
, DImode))
&& TARGET_29050"
&& TARGET_29050"
"@
"@
#
#
...
@@ -2015,8 +2015,8 @@
...
@@ -2015,8 +2015,8 @@
[
(set_attr "type" "multi")
]
)
[
(set_attr "type" "multi")
]
)
(define_split
(define_split
[
(set (match_operand:DI 0 "g
en
_reg_operand" "")
[
(set (match_operand:DI 0 "g
pc
_reg_operand" "")
(match_operand:DI 1 "g
en
_reg_or_integer_constant_operand" ""))
(match_operand:DI 1 "g
pc
_reg_or_integer_constant_operand" ""))
(clobber (reg:SI 179))]
(clobber (reg:SI 179))]
"reload_completed"
"reload_completed"
[
(set (match_dup 2) (match_dup 3))
[
(set (match_dup 2) (match_dup 3))
...
@@ -2058,8 +2058,8 @@
...
@@ -2058,8 +2058,8 @@
[
(set (match_operand:TI 0 "out_operand" "=r,r,m")
[
(set (match_operand:TI 0 "out_operand" "=r,r,m")
(match_operand:TI 1 "in_operand" "r,m,r"))
(match_operand:TI 1 "in_operand" "r,m,r"))
(clobber (reg:SI 179))]
(clobber (reg:SI 179))]
"(g
en
_reg_operand (operands
[
0
]
, TImode)
"(g
pc
_reg_operand (operands
[
0
]
, TImode)
|| g
en
_reg_operand (operands
[
1
]
, TImode))
|| g
pc
_reg_operand (operands
[
1
]
, TImode))
&& ! TARGET_29050"
&& ! TARGET_29050"
"@
"@
#
#
...
@@ -2071,8 +2071,8 @@
...
@@ -2071,8 +2071,8 @@
[
(set (match_operand:TI 0 "out_operand" "=r,&r,m")
[
(set (match_operand:TI 0 "out_operand" "=r,&r,m")
(match_operand:TI 1 "in_operand" "r,m,r"))
(match_operand:TI 1 "in_operand" "r,m,r"))
(clobber (reg:SI 179))]
(clobber (reg:SI 179))]
"(g
en
_reg_operand (operands
[
0
]
, TImode)
"(g
pc
_reg_operand (operands
[
0
]
, TImode)
|| g
en
_reg_operand (operands
[
1
]
, TImode))
|| g
pc
_reg_operand (operands
[
1
]
, TImode))
&& TARGET_29050"
&& TARGET_29050"
"@
"@
#
#
...
@@ -2081,8 +2081,8 @@
...
@@ -2081,8 +2081,8 @@
[
(set_attr "type" "multi,multi,multi")
]
)
[
(set_attr "type" "multi,multi,multi")
]
)
(define_split
(define_split
[
(set (match_operand:TI 0 "g
en
_reg_operand" "")
[
(set (match_operand:TI 0 "g
pc
_reg_operand" "")
(match_operand:TI 1 "g
en
_reg_operand" ""))
(match_operand:TI 1 "g
pc
_reg_operand" ""))
(clobber (reg:SI 179))]
(clobber (reg:SI 179))]
"reload_completed"
"reload_completed"
[
(set (match_dup 2) (match_dup 3))
[
(set (match_dup 2) (match_dup 3))
...
@@ -2132,8 +2132,8 @@
...
@@ -2132,8 +2132,8 @@
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "out_operand" "=r,r,r,r,r,r,r,m,
*h,*
h")
[
(set (match_operand:SI 0 "out_operand" "=r,r,r,r,r,r,r,m,
*h,*
h")
(match_operand:SI 1 "in_operand" "r,J,M,O,i,m,
*
h,r,r,J"))]
(match_operand:SI 1 "in_operand" "r,J,M,O,i,m,
*
h,r,r,J"))]
"(g
en
_reg_operand (operands
[
0
]
, SImode)
"(g
pc
_reg_operand (operands
[
0
]
, SImode)
|| g
en
_reg_operand (operands
[
1
]
, SImode)
|| g
pc
_reg_operand (operands
[
1
]
, SImode)
|| (spec_reg_operand (operands
[
0
]
, SImode)
|| (spec_reg_operand (operands
[
0
]
, SImode)
&& cint_16_operand (operands
[
1
]
, SImode)))
&& cint_16_operand (operands
[
1
]
, SImode)))
&& ! TARGET_29050"
&& ! TARGET_29050"
...
@@ -2153,8 +2153,8 @@
...
@@ -2153,8 +2153,8 @@
(define_insn ""
(define_insn ""
[
(set (match_operand:SI 0 "out_operand" "=r,r,r,r,r,r,r,m,
*h,*
h")
[
(set (match_operand:SI 0 "out_operand" "=r,r,r,r,r,r,r,m,
*h,*
h")
(match_operand:SI 1 "in_operand" "r,J,M,O,i,m,
*
h,r,r,J"))]
(match_operand:SI 1 "in_operand" "r,J,M,O,i,m,
*
h,r,r,J"))]
"(g
en
_reg_operand (operands
[
0
]
, SImode)
"(g
pc
_reg_operand (operands
[
0
]
, SImode)
|| g
en
_reg_operand (operands
[
1
]
, SImode)
|| g
pc
_reg_operand (operands
[
1
]
, SImode)
|| (spec_reg_operand (operands
[
0
]
, SImode)
|| (spec_reg_operand (operands
[
0
]
, SImode)
&& cint_16_operand (operands
[
1
]
, SImode)))
&& cint_16_operand (operands
[
1
]
, SImode)))
&& TARGET_29050"
&& TARGET_29050"
...
@@ -2174,8 +2174,8 @@
...
@@ -2174,8 +2174,8 @@
(define_insn ""
(define_insn ""
[
(set (match_operand:HI 0 "out_operand" "=r,r,r,m,r,
*h,*
h")
[
(set (match_operand:HI 0 "out_operand" "=r,r,r,m,r,
*h,*
h")
(match_operand:HI 1 "in_operand" "r,i,m,r,
*
h,r,i"))]
(match_operand:HI 1 "in_operand" "r,i,m,r,
*
h,r,i"))]
"g
en
_reg_operand (operands
[
0
]
, HImode)
"g
pc
_reg_operand (operands
[
0
]
, HImode)
|| g
en
_reg_operand (operands
[
1
]
, HImode)"
|| g
pc
_reg_operand (operands
[
1
]
, HImode)"
"@
"@
sll %0,%1,0
sll %0,%1,0
const %0,%1
const %0,%1
...
@@ -2189,8 +2189,8 @@
...
@@ -2189,8 +2189,8 @@
(define_insn ""
(define_insn ""
[
(set (match_operand:QI 0 "out_operand" "=r,r,r,m,r,
*h,*
h")
[
(set (match_operand:QI 0 "out_operand" "=r,r,r,m,r,
*h,*
h")
(match_operand:QI 1 "in_operand" "r,i,m,r,
*
h,r,i"))]
(match_operand:QI 1 "in_operand" "r,i,m,r,
*
h,r,i"))]
"g
en
_reg_operand (operands
[
0
]
, QImode)
"g
pc
_reg_operand (operands
[
0
]
, QImode)
|| g
en
_reg_operand (operands
[
1
]
, QImode)"
|| g
pc
_reg_operand (operands
[
1
]
, QImode)"
"@
"@
sll %0,%1,0
sll %0,%1,0
const %0,%1
const %0,%1
...
@@ -2257,7 +2257,7 @@
...
@@ -2257,7 +2257,7 @@
;; is needed.
;; is needed.
(define_expand "cmpsi"
(define_expand "cmpsi"
[
(set (cc0)
[
(set (cc0)
(compare (match_operand:SI 0 "g
en
_reg_operand" "")
(compare (match_operand:SI 0 "g
pc
_reg_operand" "")
(match_operand:SI 1 "srcb_operand" "")))]
(match_operand:SI 1 "srcb_operand" "")))]
""
""
"
"
...
@@ -2270,8 +2270,8 @@
...
@@ -2270,8 +2270,8 @@
(define_expand "cmpsf"
(define_expand "cmpsf"
[
(set (cc0)
[
(set (cc0)
(compare (match_operand:SF 0 "g
en
_reg_operand" "")
(compare (match_operand:SF 0 "g
pc
_reg_operand" "")
(match_operand:SF 1 "g
en
_reg_operand" "")))]
(match_operand:SF 1 "g
pc
_reg_operand" "")))]
""
""
"
"
{
{
...
@@ -2283,8 +2283,8 @@
...
@@ -2283,8 +2283,8 @@
(define_expand "cmpdf"
(define_expand "cmpdf"
[
(set (cc0)
[
(set (cc0)
(compare (match_operand:DF 0 "g
en
_reg_operand" "")
(compare (match_operand:DF 0 "g
pc
_reg_operand" "")
(match_operand:DF 1 "g
en
_reg_operand" "")))]
(match_operand:DF 1 "g
pc
_reg_operand" "")))]
""
""
"
"
{
{
...
@@ -2487,7 +2487,7 @@
...
@@ -2487,7 +2487,7 @@
}")
}")
(define_expand "seq"
(define_expand "seq"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(eq:SI (match_dup 1) (match_dup 2)))]
(eq:SI (match_dup 1) (match_dup 2)))]
""
""
"
"
...
@@ -2501,9 +2501,9 @@
...
@@ -2501,9 +2501,9 @@
;; compare and then write an insn to reverse the test.
;; compare and then write an insn to reverse the test.
(define_expand "sne_fp"
(define_expand "sne_fp"
[
(set (match_dup 3)
[
(set (match_dup 3)
(eq:SI (match_operand 1 "g
en
_reg_operand" "")
(eq:SI (match_operand 1 "g
pc
_reg_operand" "")
(match_operand 2 "g
en
_reg_operand" "")))
(match_operand 2 "g
pc
_reg_operand" "")))
(set (match_operand:SI 0 "g
en
_reg_operand" "")
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(ge:SI (match_dup 3) (const_int 0)))]
(ge:SI (match_dup 3) (const_int 0)))]
""
""
"
"
...
@@ -2511,7 +2511,7 @@
...
@@ -2511,7 +2511,7 @@
}");
}");
(define_expand "sne"
(define_expand "sne"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(ne:SI (match_dup 1) (match_dup 2)))]
(ne:SI (match_dup 1) (match_dup 2)))]
""
""
"
"
...
@@ -2529,7 +2529,7 @@
...
@@ -2529,7 +2529,7 @@
;; We don't have a floating-point "lt" insn, so use "gt" and swap the
;; We don't have a floating-point "lt" insn, so use "gt" and swap the
;; operands, the same as we do "blt".
;; operands, the same as we do "blt".
(define_expand "slt"
(define_expand "slt"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(match_dup 1))]
(match_dup 1))]
""
""
"
"
...
@@ -2542,7 +2542,7 @@
...
@@ -2542,7 +2542,7 @@
;; Similarly for "le"
;; Similarly for "le"
(define_expand "sle"
(define_expand "sle"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(match_dup 1))]
(match_dup 1))]
""
""
"
"
...
@@ -2554,7 +2554,7 @@
...
@@ -2554,7 +2554,7 @@
}")
}")
(define_expand "sltu"
(define_expand "sltu"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(ltu:SI (match_dup 1) (match_dup 2)))]
(ltu:SI (match_dup 1) (match_dup 2)))]
""
""
"
"
...
@@ -2564,7 +2564,7 @@
...
@@ -2564,7 +2564,7 @@
}")
}")
(define_expand "sleu"
(define_expand "sleu"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(leu:SI (match_dup 1) (match_dup 2)))]
(leu:SI (match_dup 1) (match_dup 2)))]
""
""
"
"
...
@@ -2574,7 +2574,7 @@
...
@@ -2574,7 +2574,7 @@
}")
}")
(define_expand "sgt"
(define_expand "sgt"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(gt:SI (match_dup 1) (match_dup 2)))]
(gt:SI (match_dup 1) (match_dup 2)))]
""
""
"
"
...
@@ -2584,7 +2584,7 @@
...
@@ -2584,7 +2584,7 @@
}")
}")
(define_expand "sge"
(define_expand "sge"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(ge:SI (match_dup 1) (match_dup 2)))]
(ge:SI (match_dup 1) (match_dup 2)))]
""
""
"
"
...
@@ -2594,7 +2594,7 @@
...
@@ -2594,7 +2594,7 @@
}")
}")
(define_expand "sgtu"
(define_expand "sgtu"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(gtu:SI (match_dup 1) (match_dup 2)))]
(gtu:SI (match_dup 1) (match_dup 2)))]
""
""
"
"
...
@@ -2604,7 +2604,7 @@
...
@@ -2604,7 +2604,7 @@
}")
}")
(define_expand "sgeu"
(define_expand "sgeu"
[
(set (match_operand:SI 0 "g
en
_reg_operand" "")
[
(set (match_operand:SI 0 "g
pc
_reg_operand" "")
(geu:SI (match_dup 1) (match_dup 2)))]
(geu:SI (match_dup 1) (match_dup 2)))]
""
""
"
"
...
@@ -2617,7 +2617,7 @@
...
@@ -2617,7 +2617,7 @@
(define_insn ""
(define_insn ""
[
(set (pc)
[
(set (pc)
(if_then_else (match_operator 0 "branch_operator"
(if_then_else (match_operator 0 "branch_operator"
[
(match_operand:SI 1 "g
en
_reg_operand" "r")
[
(match_operand:SI 1 "g
pc
_reg_operand" "r")
(const_int 0)])
(const_int 0)])
(label_ref (match_operand 2 "" ""))
(label_ref (match_operand 2 "" ""))
(pc)))]
(pc)))]
...
@@ -2628,7 +2628,7 @@
...
@@ -2628,7 +2628,7 @@
(define_insn ""
(define_insn ""
[
(set (pc)
[
(set (pc)
(if_then_else (match_operator 0 "branch_operator"
(if_then_else (match_operator 0 "branch_operator"
[
(match_operand:SI 1 "g
en
_reg_operand" "r")
[
(match_operand:SI 1 "g
pc
_reg_operand" "r")
(const_int 0)])
(const_int 0)])
(return)
(return)
(pc)))]
(pc)))]
...
@@ -2639,7 +2639,7 @@
...
@@ -2639,7 +2639,7 @@
(define_insn ""
(define_insn ""
[
(set (pc)
[
(set (pc)
(if_then_else (match_operator 0 "branch_operator"
(if_then_else (match_operator 0 "branch_operator"
[
(match_operand:SI 1 "g
en
_reg_operand" "r")
[
(match_operand:SI 1 "g
pc
_reg_operand" "r")
(const_int 0)])
(const_int 0)])
(pc)
(pc)
(label_ref (match_operand 2 "" ""))))]
(label_ref (match_operand 2 "" ""))))]
...
@@ -2650,7 +2650,7 @@
...
@@ -2650,7 +2650,7 @@
(define_insn ""
(define_insn ""
[
(set (pc)
[
(set (pc)
(if_then_else (match_operator 0 "branch_operator"
(if_then_else (match_operator 0 "branch_operator"
[
(match_operand:SI 1 "g
en
_reg_operand" "r")
[
(match_operand:SI 1 "g
pc
_reg_operand" "r")
(const_int 0)])
(const_int 0)])
(pc)
(pc)
(return)))]
(return)))]
...
@@ -2673,14 +2673,14 @@
...
@@ -2673,14 +2673,14 @@
(define_insn "indirect_jump"
(define_insn "indirect_jump"
[
(set (pc)
[
(set (pc)
(match_operand:SI 0 "g
en
_reg_operand" "r"))]
(match_operand:SI 0 "g
pc
_reg_operand" "r"))]
""
""
"jmpi %0%#"
"jmpi %0%#"
[
(set_attr "type" "branch")
]
)
[
(set_attr "type" "branch")
]
)
(define_insn "tablejump"
(define_insn "tablejump"
[
(set (pc)
[
(set (pc)
(match_operand:SI 0 "g
en
_reg_operand" "r"))
(match_operand:SI 0 "g
pc
_reg_operand" "r"))
(use (label_ref (match_operand 1 "" "")))]
(use (label_ref (match_operand 1 "" "")))]
""
""
"jmpi %0%#"
"jmpi %0%#"
...
@@ -2689,7 +2689,7 @@
...
@@ -2689,7 +2689,7 @@
;; JMPFDEC
;; JMPFDEC
(define_insn ""
(define_insn ""
[
(set (pc)
[
(set (pc)
(if_then_else (ge (match_operand:SI 0 "g
en
_reg_operand" "r")
(if_then_else (ge (match_operand:SI 0 "g
pc
_reg_operand" "r")
(const_int 0))
(const_int 0))
(label_ref (match_operand 1 "" ""))
(label_ref (match_operand 1 "" ""))
(pc)))
(pc)))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment