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
40cccf8c
Commit
40cccf8c
authored
Feb 07, 2015
by
Matthias Braun
Browse files
bescript: detect ambiguous requirements and provide a way to resolve them
parent
e71d75e0
Changes
1
Hide whitespace changes
Inline
Side-by-side
ir/be/scripts/generate_new_opcodes.pl
View file @
40cccf8c
...
...
@@ -788,6 +788,12 @@ sub is_reg_class {
return
0
;
}
sub
is_ambiguous
{
my
$name
=
shift
;
return
1
if
exists
(
$reg_classes
{"
$name
"})
&&
exists
(
$reg2class
{"
$name
"});
return
0
;
}
###
# Returns the register class for a given register.
# @return class or undef
...
...
@@ -1025,10 +1031,23 @@ sub generate_requirements {
}
}
my
$is_cls
=
0
;
my
$is_reg
=
0
;
if
(
$reqs
=~
/reg-(.*)/
)
{
$reqs
=
$
1
;
$is_reg
=
1
;
}
elsif
(
$reqs
=~
/cls-(.*)/
)
{
$reqs
=
$
1
;
$is_cls
=
1
;
}
if
(
is_ambiguous
(
$reqs
)
&&
!
$is_reg
&&
!
$is_cls
)
{
die
("
Fatal error:
$reqs
is ambiguous (try reg-
$reqs
or cls-
$reqs
) at node
$op
")
}
my
$class
;
if
(
$reqs
eq
"
none
")
{
return
"
arch_no_requirement
";
}
elsif
(
is_reg_class
(
$reqs
))
{
}
elsif
(
is_reg_class
(
$reqs
)
&&
!
$is_reg
)
{
my
$reqtype
=
join
("
|
",
@req_type_mask
)
||
"
arch_register_req_type_none
";
$class
=
$reqs
;
$result
=
<<EOF;
...
...
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