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
664cda3b
Commit
664cda3b
authored
Aug 19, 2014
by
Matthias Braun
Browse files
amd64: fix wrong register requirements for float ops with address mode
parent
a7563a6c
Changes
1
Hide whitespace changes
Inline
Side-by-side
ir/be/amd64/amd64_transform.c
View file @
664cda3b
...
@@ -167,12 +167,6 @@ static const arch_register_req_t *xmm_reg_mem_reqs[] = {
...
@@ -167,12 +167,6 @@ static const arch_register_req_t *xmm_reg_mem_reqs[] = {
&
arch_no_requirement
,
&
arch_no_requirement
,
};
};
static
const
arch_register_req_t
*
xmm_xmm_mem_reqs
[]
=
{
&
amd64_requirement_xmm
,
&
amd64_requirement_xmm
,
&
arch_no_requirement
,
};
static
const
arch_register_req_t
*
reg_reg_reg_mem_reqs
[]
=
{
static
const
arch_register_req_t
*
reg_reg_reg_mem_reqs
[]
=
{
&
amd64_requirement_gp
,
&
amd64_requirement_gp
,
&
amd64_requirement_gp
,
&
amd64_requirement_gp
,
...
@@ -187,13 +181,6 @@ static const arch_register_req_t *xmm_reg_reg_mem_reqs[] = {
...
@@ -187,13 +181,6 @@ static const arch_register_req_t *xmm_reg_reg_mem_reqs[] = {
&
arch_no_requirement
,
&
arch_no_requirement
,
};
};
static
const
arch_register_req_t
*
xmm_xmm_xmm_mem_reqs
[]
=
{
&
amd64_requirement_xmm
,
&
amd64_requirement_xmm
,
&
amd64_requirement_xmm
,
&
arch_no_requirement
,
};
static
const
arch_register_req_t
*
reg_flags_reqs
[]
=
{
static
const
arch_register_req_t
*
reg_flags_reqs
[]
=
{
&
amd64_requirement_gp
,
&
amd64_requirement_gp
,
&
amd64_requirement_flags
,
&
amd64_requirement_flags
,
...
@@ -699,10 +686,10 @@ static void match_binop(amd64_args_t *args, ir_node *block,
...
@@ -699,10 +686,10 @@ static void match_binop(amd64_args_t *args, ir_node *block,
args
->
reqs
=
use_xmm
?
xmm_mem_reqs
:
reg_mem_reqs
;
args
->
reqs
=
use_xmm
?
xmm_mem_reqs
:
reg_mem_reqs
;
if
(
addr
->
base_input
!=
NO_INPUT
&&
addr
->
index_input
!=
NO_INPUT
)
{
if
(
addr
->
base_input
!=
NO_INPUT
&&
addr
->
index_input
!=
NO_INPUT
)
{
args
->
reqs
=
use_xmm
?
xmm_
xmm_xmm
_mem_reqs
args
->
reqs
=
use_xmm
?
xmm_
reg_reg
_mem_reqs
:
reg_reg_reg_mem_reqs
;
:
reg_reg_reg_mem_reqs
;
}
else
if
(
addr
->
base_input
!=
NO_INPUT
||
addr
->
index_input
!=
NO_INPUT
)
{
}
else
if
(
addr
->
base_input
!=
NO_INPUT
||
addr
->
index_input
!=
NO_INPUT
)
{
args
->
reqs
=
use_xmm
?
xmm_
xmm
_mem_reqs
args
->
reqs
=
use_xmm
?
xmm_
reg
_mem_reqs
:
reg_reg_mem_reqs
;
:
reg_reg_mem_reqs
;
}
}
ir_node
*
new_mem
=
be_transform_node
(
get_Load_mem
(
load
));
ir_node
*
new_mem
=
be_transform_node
(
get_Load_mem
(
load
));
...
...
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