Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Zwinkau
libfirm
Commits
abee1ada
Commit
abee1ada
authored
Aug 06, 2010
by
Christoph Mallon
Browse files
Remove redundant reg_req from SPARC nodes with constructors.
[r27886]
parent
586fe6fe
Changes
1
Hide whitespace changes
Inline
Side-by-side
ir/be/sparc/sparc_spec.pl
View file @
abee1ada
...
...
@@ -235,17 +235,16 @@ my %float_binop_constructors = (
%nodes
=
(
Add
=>
{
irn_flags
=>
[
"
rematerializable
"
],
mode
=>
$mode_gp
,
emit
=>
'
. add %S1, %R2I, %D1
',
irn_flags
=>
[
"
rematerializable
"
],
mode
=>
$mode_gp
,
emit
=>
'
. add %S1, %R2I, %D1
',
constructors
=>
\
%binop_operand_constructors
,
},
Sub
=>
{
irn_flags
=>
[
"
rematerializable
"
],
mode
=>
$mode_gp
,
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
"
],
out
=>
[
"
gp
"
]
},
emit
=>
'
. sub %S1, %R2I, %D1
',
irn_flags
=>
[
"
rematerializable
"
],
mode
=>
$mode_gp
,
emit
=>
'
. sub %S1, %R2I, %D1
',
constructors
=>
\
%binop_operand_constructors
,
},
...
...
@@ -412,7 +411,6 @@ Call => {
Cmp
=>
{
irn_flags
=>
[
"
rematerializable
",
"
modifies_flags
"
],
emit
=>
'
. cmp %S1, %R2I
',
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
"
],
out
=>
[
"
flags
"
]
},
ins
=>
[
"
left
",
"
right
"
],
mode
=>
$mode_flags
,
constructors
=>
\
%cmp_operand_constructors
,
...
...
@@ -439,63 +437,55 @@ SwitchJmp => {
},
Sll
=>
{
irn_flags
=>
[
"
rematerializable
"
],
mode
=>
$mode_gp
,
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
"
],
out
=>
[
"
gp
"
]
},
emit
=>
'
. sll %S1, %R2I, %D1
',
irn_flags
=>
[
"
rematerializable
"
],
mode
=>
$mode_gp
,
emit
=>
'
. sll %S1, %R2I, %D1
',
constructors
=>
\
%binop_operand_constructors
,
},
Slr
=>
{
irn_flags
=>
[
"
rematerializable
"
],
mode
=>
$mode_gp
,
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
"
],
out
=>
[
"
gp
"
]
},
emit
=>
'
. srl %S1, %R2I, %D1
',
irn_flags
=>
[
"
rematerializable
"
],
mode
=>
$mode_gp
,
emit
=>
'
. srl %S1, %R2I, %D1
',
constructors
=>
\
%binop_operand_constructors
,
},
Sra
=>
{
irn_flags
=>
[
"
rematerializable
"
],
mode
=>
$mode_gp
,
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
"
],
out
=>
[
"
gp
"
]
},
emit
=>
'
. sra %S1, %R2I, %D1
',
irn_flags
=>
[
"
rematerializable
"
],
mode
=>
$mode_gp
,
emit
=>
'
. sra %S1, %R2I, %D1
',
constructors
=>
\
%binop_operand_constructors
,
},
And
=>
{
irn_flags
=>
[
"
rematerializable
"
],
mode
=>
$mode_gp
,
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
"
],
out
=>
[
"
gp
"
]
},
emit
=>
'
. and %S1, %R2I, %D1
',
irn_flags
=>
[
"
rematerializable
"
],
mode
=>
$mode_gp
,
emit
=>
'
. and %S1, %R2I, %D1
',
constructors
=>
\
%binop_operand_constructors
,
},
Or
=>
{
irn_flags
=>
[
"
rematerializable
"
],
mode
=>
$mode_gp
,
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
"
],
out
=>
[
"
gp
"
]
},
emit
=>
'
. or %S1, %R2I, %D1
',
irn_flags
=>
[
"
rematerializable
"
],
mode
=>
$mode_gp
,
emit
=>
'
. or %S1, %R2I, %D1
',
constructors
=>
\
%binop_operand_constructors
,
},
Xor
=>
{
irn_flags
=>
[
"
rematerializable
"
],
mode
=>
$mode_gp
,
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
"
],
out
=>
[
"
gp
"
]
},
emit
=>
'
. xor %S1, %R2I, %D1
',
irn_flags
=>
[
"
rematerializable
"
],
mode
=>
$mode_gp
,
emit
=>
'
. xor %S1, %R2I, %D1
',
constructors
=>
\
%binop_operand_constructors
,
},
Mul
=>
{
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
"
],
out
=>
[
"
gp
",
"
y
"
]
},
mode
=>
$mode_gp
,
emit
=>
'
. smul %S1, %R2I, %D1
',
constructors
=>
\
%binop_operand_constructors
,
emit
=>
'
. smul %S1, %R2I, %D1
',
mode
=>
$mode_gp
,
},
Mulh
=>
{
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
"
],
out
=>
[
"
gp
",
"
gp
"
]
},
outs
=>
[
"
low
",
"
high
"
],
outs
=>
[
"
low
",
"
high
"
],
constructors
=>
\
%binop_operand_constructors
,
},
...
...
@@ -504,20 +494,18 @@ Mulh => {
# as an explicit y-register
SDiv
=>
{
irn_flags
=>
[
"
rematerializable
"
],
state
=>
"
exc_pinned
",
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
"
],
out
=>
[
"
gp
",
"
none
"
]
},
ins
=>
[
"
dividend_low
",
"
divisor
"
],
outs
=>
[
"
res
",
"
M
"
],
irn_flags
=>
[
"
rematerializable
"
],
state
=>
"
exc_pinned
",
ins
=>
[
"
dividend_low
",
"
divisor
"
],
outs
=>
[
"
res
",
"
M
"
],
constructors
=>
\
%binop_operand_constructors
,
},
UDiv
=>
{
irn_flags
=>
[
"
rematerializable
"
],
state
=>
"
exc_pinned
",
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
"
],
out
=>
[
"
gp
",
"
none
"
]
},
ins
=>
[
"
dividend_low
",
"
divisor
"
],
outs
=>
[
"
res
",
"
M
"
],
irn_flags
=>
[
"
rematerializable
"
],
state
=>
"
exc_pinned
",
ins
=>
[
"
dividend_low
",
"
divisor
"
],
outs
=>
[
"
res
",
"
M
"
],
constructors
=>
\
%binop_operand_constructors
,
},
...
...
@@ -551,41 +539,37 @@ fcmp => {
},
fadd
=>
{
op_flags
=>
[
"
commutative
"
],
irn_flags
=>
[
"
rematerializable
"
],
reg_req
=>
{
in
=>
[
"
fp
",
"
fp
"
],
out
=>
[
"
fp
"
]
},
emit
=>
'
. fadd%FPM %S1, %S2, %D1
',
attr_type
=>
"
sparc_fp_attr_t
",
attr
=>
"
ir_mode *fp_mode
",
op_flags
=>
[
"
commutative
"
],
irn_flags
=>
[
"
rematerializable
"
],
emit
=>
'
. fadd%FPM %S1, %S2, %D1
',
attr_type
=>
"
sparc_fp_attr_t
",
attr
=>
"
ir_mode *fp_mode
",
constructors
=>
\
%float_binop_constructors
,
},
fsub
=>
{
irn_flags
=>
[
"
rematerializable
"
],
reg_req
=>
{
in
=>
[
"
fp
",
"
fp
"
],
out
=>
[
"
fp
"
]
},
emit
=>
'
. fsub%FPM %S1, %S2, %D1
',
attr_type
=>
"
sparc_fp_attr_t
",
attr
=>
"
ir_mode *fp_mode
",
irn_flags
=>
[
"
rematerializable
"
],
emit
=>
'
. fsub%FPM %S1, %S2, %D1
',
attr_type
=>
"
sparc_fp_attr_t
",
attr
=>
"
ir_mode *fp_mode
",
constructors
=>
\
%float_binop_constructors
,
},
fmul
=>
{
irn_flags
=>
[
"
rematerializable
"
],
op_flags
=>
[
"
commutative
"
],
reg_req
=>
{
in
=>
[
"
fp
",
"
fp
"
],
out
=>
[
"
fp
"
]
},
emit
=>
'
. fmul%FPM %S1, %S2, %D1
',
attr_type
=>
"
sparc_fp_attr_t
",
attr
=>
"
ir_mode *fp_mode
",
irn_flags
=>
[
"
rematerializable
"
],
op_flags
=>
[
"
commutative
"
],
emit
=>
'
. fmul%FPM %S1, %S2, %D1
',
attr_type
=>
"
sparc_fp_attr_t
",
attr
=>
"
ir_mode *fp_mode
",
constructors
=>
\
%float_binop_constructors
,
},
fdiv
=>
{
irn_flags
=>
[
"
rematerializable
"
],
reg_req
=>
{
in
=>
[
"
fp
",
"
fp
"
],
out
=>
[
"
fp
",
"
none
"
]
},
emit
=>
'
. fdiv%FPM %S1, %S2, %D1
',
attr_type
=>
"
sparc_fp_attr_t
",
attr
=>
"
ir_mode *fp_mode
",
outs
=>
[
"
res
",
"
M
"
],
irn_flags
=>
[
"
rematerializable
"
],
emit
=>
'
. fdiv%FPM %S1, %S2, %D1
',
attr_type
=>
"
sparc_fp_attr_t
",
attr
=>
"
ir_mode *fp_mode
",
outs
=>
[
"
res
",
"
M
"
],
constructors
=>
\
%float_binop_constructors
,
},
...
...
@@ -599,11 +583,10 @@ fneg => {
},
"
fabs
"
=>
{
irn_flags
=>
[
"
rematerializable
"
],
reg_req
=>
{
in
=>
[
"
fp
"
],
out
=>
[
"
fp
"
]
},
emit
=>
'
. fabs%FPM %S1, %D1
',
attr_type
=>
"
sparc_fp_attr_t
",
attr
=>
"
ir_mode *fp_mode
",
irn_flags
=>
[
"
rematerializable
"
],
emit
=>
'
. fabs%FPM %S1, %D1
',
attr_type
=>
"
sparc_fp_attr_t
",
attr
=>
"
ir_mode *fp_mode
",
constructors
=>
\
%float_binop_constructors
,
},
...
...
Write
Preview
Supports
Markdown
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