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
e4e663b2
Commit
e4e663b2
authored
Feb 27, 2007
by
Matthias Braun
Browse files
SSE consts for xorps need to be 128bit
parent
3c80f7a8
Changes
3
Hide whitespace changes
Inline
Side-by-side
ir/be/ia32/ia32_emitter.c
View file @
e4e663b2
...
...
@@ -1706,19 +1706,19 @@ static void emit_be_Perm(ia32_emit_env_t *env, const ir_node *node) {
}
#endif
}
else
if
(
cls1
==
&
ia32_reg_classes
[
CLASS_ia32_xmm
])
{
ia32_emit_cstring
(
env
,
"
\t
p
xor
q
"
);
ia32_emit_cstring
(
env
,
"
\t
xor
pd
"
);
ia32_emit_source_register
(
env
,
node
,
1
);
ia32_emit_cstring
(
env
,
", "
);
ia32_emit_source_register
(
env
,
node
,
0
);
ia32_emit_finish_line
(
env
,
NULL
);
ia32_emit_cstring
(
env
,
"
\t
p
xor
q
"
);
ia32_emit_cstring
(
env
,
"
\t
xor
pd
"
);
ia32_emit_source_register
(
env
,
node
,
0
);
ia32_emit_cstring
(
env
,
", "
);
ia32_emit_source_register
(
env
,
node
,
1
);
ia32_emit_finish_line
(
env
,
NULL
);
ia32_emit_cstring
(
env
,
"
\t
p
xor
q
"
);
ia32_emit_cstring
(
env
,
"
\t
xor
pd
"
);
ia32_emit_source_register
(
env
,
node
,
1
);
ia32_emit_cstring
(
env
,
", "
);
ia32_emit_source_register
(
env
,
node
,
0
);
...
...
ir/be/ia32/ia32_gen_decls.c
View file @
e4e663b2
...
...
@@ -68,6 +68,20 @@ static void dump_arith_tarval(obstack_t *obst, tarval *tv, int bytes)
case
12
:
break
;
case
16
:
obstack_printf
(
obst
,
"0x%02x%02x%02x%02x%02x%02x%02x%02x"
"%02x%02x%02x%02x%02x%02x%02x%02x"
,
get_tarval_sub_bits
(
tv
,
15
),
get_tarval_sub_bits
(
tv
,
16
),
get_tarval_sub_bits
(
tv
,
13
),
get_tarval_sub_bits
(
tv
,
12
),
get_tarval_sub_bits
(
tv
,
11
),
get_tarval_sub_bits
(
tv
,
10
),
get_tarval_sub_bits
(
tv
,
9
),
get_tarval_sub_bits
(
tv
,
8
),
get_tarval_sub_bits
(
tv
,
7
),
get_tarval_sub_bits
(
tv
,
6
),
get_tarval_sub_bits
(
tv
,
5
),
get_tarval_sub_bits
(
tv
,
4
),
get_tarval_sub_bits
(
tv
,
3
),
get_tarval_sub_bits
(
tv
,
2
),
get_tarval_sub_bits
(
tv
,
1
),
get_tarval_sub_bits
(
tv
,
0
));
break
;
default:
fprintf
(
stderr
,
"Try to dump an tarval with %d bytes
\n
"
,
bytes
);
assert
(
0
);
...
...
@@ -227,6 +241,10 @@ static void dump_size_type(obstack_t *obst, int size) {
/* handled in arith */
break
;
case
16
:
obstack_printf
(
obst
,
"
\t
.octa
\t
"
);
break
;
default:
fprintf
(
stderr
,
"Try to dump a type with %d bytes
\n
"
,
size
);
assert
(
0
);
...
...
ir/be/ia32/ia32_transform.c
View file @
e4e663b2
...
...
@@ -421,7 +421,8 @@ ident *ia32_gen_fp_known_const(ia32_known_const_t kct) {
tp_name
=
names
[
kct
].
tp_name
;
cnst_str
=
names
[
kct
].
cnst_str
;
mode
=
kct
==
ia32_SSIGN
||
kct
==
ia32_SABS
?
mode_Iu
:
mode_Lu
;
//mode = kct == ia32_SSIGN || kct == ia32_SABS ? mode_Iu : mode_Lu;
mode
=
mode_LLu
;
tv
=
new_tarval_from_str
(
cnst_str
,
strlen
(
cnst_str
),
mode
);
tp
=
new_type_primitive
(
new_id_from_str
(
tp_name
),
mode
);
ent
=
new_entity
(
get_glob_type
(),
new_id_from_str
(
ent_name
),
tp
);
...
...
@@ -3495,10 +3496,10 @@ static ir_node *gen_Proj_Quot(ia32_transform_env_t *env, ir_node *node)
break
;
case
pn_Quot_res
:
if
(
is_ia32_xDiv
(
new_pred
))
{
return
new_rd_Proj
(
dbg
,
irg
,
block
,
new_pred
,
mode
,
return
new_rd_Proj
(
dbg
,
irg
,
block
,
new_pred
,
mode
_E
,
pn_ia32_xDiv_res
);
}
else
if
(
is_ia32_vfdiv
(
new_pred
))
{
return
new_rd_Proj
(
dbg
,
irg
,
block
,
new_pred
,
mode
,
return
new_rd_Proj
(
dbg
,
irg
,
block
,
new_pred
,
mode
_E
,
pn_ia32_vfdiv_res
);
}
break
;
...
...
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