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
0a56ad62
Commit
0a56ad62
authored
Feb 05, 1993
by
Jim Wilson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(legitimate_address_p): Accept either REG or SUBREG where
a register is valid in an address. From-SVN: r3425
parent
2e4f4529
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
36 additions
and
36 deletions
+36
-36
gcc/config/i960/i960.c
+36
-36
No files found.
gcc/config/i960/i960.c
View file @
0a56ad62
...
@@ -1552,15 +1552,33 @@ i960_print_operand_addr (file, addr)
...
@@ -1552,15 +1552,33 @@ i960_print_operand_addr (file, addr)
convert common non-canonical forms to canonical form so that they will
convert common non-canonical forms to canonical form so that they will
be recognized. */
be recognized. */
/* These two macros allow us to accept either a REG or a SUBREG anyplace
where a register is valid. */
#define RTX_OK_FOR_BASE_P(X, STRICT) \
((GET_CODE (X) == REG \
&& (STRICT ? REG_OK_FOR_BASE_P_STRICT (X) : REG_OK_FOR_BASE_P (X))) \
|| (GET_CODE (X) == SUBREG \
&& GET_CODE (SUBREG_REG (X)) == REG \
&& (STRICT ? REG_OK_FOR_BASE_P_STRICT (SUBREG_REG (X)) \
: REG_OK_FOR_BASE_P (SUBREG_REG (X)))))
#define RTX_OK_FOR_INDEX_P(X, STRICT) \
((GET_CODE (X) == REG \
&& (STRICT ? REG_OK_FOR_INDEX_P_STRICT (X) : REG_OK_FOR_INDEX_P (X)))\
|| (GET_CODE (X) == SUBREG \
&& GET_CODE (SUBREG_REG (X)) == REG \
&& (STRICT ? REG_OK_FOR_INDEX_P_STRICT (SUBREG_REG (X)) \
: REG_OK_FOR_INDEX_P (SUBREG_REG (X)))))
int
int
legitimate_address_p
(
mode
,
addr
,
strict
)
legitimate_address_p
(
mode
,
addr
,
strict
)
enum
machine_mode
mode
;
enum
machine_mode
mode
;
register
rtx
addr
;
register
rtx
addr
;
int
strict
;
int
strict
;
{
{
if
(
GET_CODE
(
addr
)
==
REG
)
if
(
RTX_OK_FOR_BASE_P
(
addr
,
strict
))
return
(
strict
?
REG_OK_FOR_BASE_P_STRICT
(
addr
)
return
1
;
:
REG_OK_FOR_BASE_P
(
addr
));
else
if
(
CONSTANT_P
(
addr
))
else
if
(
CONSTANT_P
(
addr
))
return
1
;
return
1
;
else
if
(
GET_CODE
(
addr
)
==
PLUS
)
else
if
(
GET_CODE
(
addr
)
==
PLUS
)
...
@@ -1573,15 +1591,10 @@ legitimate_address_p (mode, addr, strict)
...
@@ -1573,15 +1591,10 @@ legitimate_address_p (mode, addr, strict)
op0
=
XEXP
(
addr
,
0
);
op0
=
XEXP
(
addr
,
0
);
op1
=
XEXP
(
addr
,
1
);
op1
=
XEXP
(
addr
,
1
);
if
(
GET_CODE
(
op0
)
==
REG
)
if
(
RTX_OK_FOR_BASE_P
(
op0
,
strict
)
)
{
{
if
(
!
(
strict
?
REG_OK_FOR_BASE_P_STRICT
(
op0
)
if
(
RTX_OK_FOR_INDEX_P
(
op1
,
strict
))
:
REG_OK_FOR_BASE_P
(
op0
)))
return
1
;
return
0
;
if
(
GET_CODE
(
op1
)
==
REG
)
return
(
strict
?
REG_OK_FOR_INDEX_P_STRICT
(
op1
)
:
REG_OK_FOR_INDEX_P
(
op1
));
else
if
(
CONSTANT_P
(
op1
))
else
if
(
CONSTANT_P
(
op1
))
return
1
;
return
1
;
else
else
...
@@ -1591,29 +1604,21 @@ legitimate_address_p (mode, addr, strict)
...
@@ -1591,29 +1604,21 @@ legitimate_address_p (mode, addr, strict)
{
{
if
(
GET_CODE
(
XEXP
(
op0
,
0
))
==
MULT
)
if
(
GET_CODE
(
XEXP
(
op0
,
0
))
==
MULT
)
{
{
if
(
!
(
GET_CODE
(
XEXP
(
XEXP
(
op0
,
0
),
0
))
==
REG
if
(
!
(
RTX_OK_FOR_INDEX_P
(
XEXP
(
XEXP
(
op0
,
0
),
0
),
strict
)
&&
(
strict
?
REG_OK_FOR_INDEX_P_STRICT
(
XEXP
(
XEXP
(
op0
,
0
),
0
))
:
REG_OK_FOR_INDEX_P
(
XEXP
(
XEXP
(
op0
,
0
),
0
)))
&&
SCALE_TERM_P
(
XEXP
(
XEXP
(
op0
,
0
),
1
))))
&&
SCALE_TERM_P
(
XEXP
(
XEXP
(
op0
,
0
),
1
))))
return
0
;
return
0
;
if
(
GET_CODE
(
XEXP
(
op0
,
1
))
==
REG
)
if
(
RTX_OK_FOR_BASE_P
(
XEXP
(
op0
,
1
),
strict
)
return
((
strict
?
REG_OK_FOR_BASE_P_STRICT
(
XEXP
(
op0
,
1
))
&&
CONSTANT_P
(
op1
))
:
REG_OK_FOR_BASE_P
(
XEXP
(
op0
,
1
)))
return
1
;
&&
CONSTANT_P
(
op1
));
else
else
return
0
;
return
0
;
}
}
else
if
(
GET_CODE
(
XEXP
(
op0
,
0
))
==
REG
)
else
if
(
RTX_OK_FOR_BASE_P
(
XEXP
(
op0
,
0
),
strict
)
)
{
{
if
(
!
(
strict
?
REG_OK_FOR_BASE_P_STRICT
(
XEXP
(
op0
,
0
))
if
(
RTX_OK_FOR_INDEX_P
(
XEXP
(
op0
,
1
),
strict
)
:
REG_OK_FOR_BASE_P
(
XEXP
(
op0
,
0
))))
&&
CONSTANT_P
(
op1
))
return
0
;
return
1
;
if
(
GET_CODE
(
XEXP
(
op0
,
1
))
==
REG
)
return
((
strict
?
REG_OK_FOR_INDEX_P_STRICT
(
XEXP
(
op0
,
1
))
:
REG_OK_FOR_INDEX_P
(
XEXP
(
op0
,
1
)))
&&
CONSTANT_P
(
op1
));
else
else
return
0
;
return
0
;
}
}
...
@@ -1622,15 +1627,12 @@ legitimate_address_p (mode, addr, strict)
...
@@ -1622,15 +1627,12 @@ legitimate_address_p (mode, addr, strict)
}
}
else
if
(
GET_CODE
(
op0
)
==
MULT
)
else
if
(
GET_CODE
(
op0
)
==
MULT
)
{
{
if
(
!
(
GET_CODE
(
XEXP
(
op0
,
0
))
==
REG
if
(
!
(
RTX_OK_FOR_INDEX_P
(
XEXP
(
op0
,
0
),
strict
)
&&
(
strict
?
REG_OK_FOR_INDEX_P_STRICT
(
XEXP
(
op0
,
0
))
:
REG_OK_FOR_INDEX_P
(
XEXP
(
op0
,
0
)))
&&
SCALE_TERM_P
(
XEXP
(
op0
,
1
))))
&&
SCALE_TERM_P
(
XEXP
(
op0
,
1
))))
return
0
;
return
0
;
if
(
GET_CODE
(
op1
)
==
REG
)
if
(
RTX_OK_FOR_BASE_P
(
op1
,
strict
))
return
(
strict
?
REG_OK_FOR_BASE_P_STRICT
(
op1
)
return
1
;
:
REG_OK_FOR_BASE_P
(
op1
));
else
if
(
CONSTANT_P
(
op1
))
else
if
(
CONSTANT_P
(
op1
))
return
1
;
return
1
;
else
else
...
@@ -1644,9 +1646,7 @@ legitimate_address_p (mode, addr, strict)
...
@@ -1644,9 +1646,7 @@ legitimate_address_p (mode, addr, strict)
if
(
!
TARGET_COMPLEX_ADDR
&&
!
reload_completed
)
if
(
!
TARGET_COMPLEX_ADDR
&&
!
reload_completed
)
return
0
;
return
0
;
return
(
GET_CODE
(
XEXP
(
addr
,
0
))
==
REG
return
(
RTX_OK_FOR_INDEX_P
(
XEXP
(
addr
,
0
),
strict
)
&&
(
strict
?
REG_OK_FOR_INDEX_P_STRICT
(
XEXP
(
addr
,
0
))
:
REG_OK_FOR_INDEX_P
(
XEXP
(
addr
,
0
)))
&&
SCALE_TERM_P
(
XEXP
(
addr
,
1
)));
&&
SCALE_TERM_P
(
XEXP
(
addr
,
1
)));
}
}
else
else
...
...
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