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
906a0d83
Commit
906a0d83
authored
Mar 22, 2007
by
Matthias Braun
Browse files
make CondJmps and Switches pinned, now we can do code_placement in the backend again
parent
2d1b1636
Changes
2
Hide whitespace changes
Inline
Side-by-side
ir/be/ia32/ia32_spec.pl
View file @
906a0d83
...
@@ -654,6 +654,7 @@ Not => {
...
@@ -654,6 +654,7 @@ Not => {
# other operations
# other operations
CondJmp
=>
{
CondJmp
=>
{
state
=>
"
pinned
",
op_flags
=>
"
L|X|Y
",
op_flags
=>
"
L|X|Y
",
comment
=>
"
construct conditional jump: CMP A, B && JMPxx LABEL
",
comment
=>
"
construct conditional jump: CMP A, B && JMPxx LABEL
",
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
",
"
gp
",
"
gp
",
"
none
"
]
},
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
",
"
gp
",
"
gp
",
"
none
"
]
},
...
@@ -663,6 +664,7 @@ CondJmp => {
...
@@ -663,6 +664,7 @@ CondJmp => {
},
},
TestJmp
=>
{
TestJmp
=>
{
state
=>
"
pinned
",
op_flags
=>
"
L|X|Y
",
op_flags
=>
"
L|X|Y
",
comment
=>
"
construct conditional jump: TEST A, B && JMPxx LABEL
",
comment
=>
"
construct conditional jump: TEST A, B && JMPxx LABEL
",
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
"
]
},
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
"
]
},
...
@@ -672,6 +674,7 @@ TestJmp => {
...
@@ -672,6 +674,7 @@ TestJmp => {
},
},
CJmpAM
=>
{
CJmpAM
=>
{
state
=>
"
pinned
",
op_flags
=>
"
L|X|Y
",
op_flags
=>
"
L|X|Y
",
comment
=>
"
construct conditional jump without CMP (replaces CondJmp): JMPxx LABEL
",
comment
=>
"
construct conditional jump without CMP (replaces CondJmp): JMPxx LABEL
",
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
",
"
gp
",
"
gp
",
"
none
"
],
out
=>
[
"
none
",
"
none
"
]
},
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
",
"
gp
",
"
gp
",
"
none
"
],
out
=>
[
"
none
",
"
none
"
]
},
...
@@ -680,6 +683,7 @@ CJmpAM => {
...
@@ -680,6 +683,7 @@ CJmpAM => {
},
},
CJmp
=>
{
CJmp
=>
{
state
=>
"
pinned
",
op_flags
=>
"
L|X|Y
",
op_flags
=>
"
L|X|Y
",
comment
=>
"
construct conditional jump without CMP (replaces TestJmp): JMPxx LABEL
",
comment
=>
"
construct conditional jump without CMP (replaces TestJmp): JMPxx LABEL
",
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
"
]
},
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
"
]
},
...
@@ -687,6 +691,7 @@ CJmp => {
...
@@ -687,6 +691,7 @@ CJmp => {
},
},
SwitchJmp
=>
{
SwitchJmp
=>
{
state
=>
"
pinned
",
op_flags
=>
"
L|X|Y
",
op_flags
=>
"
L|X|Y
",
comment
=>
"
construct switch
",
comment
=>
"
construct switch
",
reg_req
=>
{
in
=>
[
"
gp
"
],
out
=>
[
"
none
"
]
},
reg_req
=>
{
in
=>
[
"
gp
"
],
out
=>
[
"
none
"
]
},
...
@@ -1053,6 +1058,7 @@ xCmp => {
...
@@ -1053,6 +1058,7 @@ xCmp => {
},
},
xCondJmp
=>
{
xCondJmp
=>
{
state
=>
"
pinned
",
op_flags
=>
"
L|X|Y
",
op_flags
=>
"
L|X|Y
",
comment
=>
"
construct conditional jump: UCOMIS A, B && JMPxx LABEL
",
comment
=>
"
construct conditional jump: UCOMIS A, B && JMPxx LABEL
",
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
",
"
xmm
",
"
xmm
",
"
none
"
],
out
=>
[
"
none
",
"
none
"
]
},
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
",
"
xmm
",
"
xmm
",
"
none
"
],
out
=>
[
"
none
",
"
none
"
]
},
...
@@ -1548,6 +1554,7 @@ vfConst => {
...
@@ -1548,6 +1554,7 @@ vfConst => {
# other
# other
vfCondJmp
=>
{
vfCondJmp
=>
{
state
=>
"
pinned
",
op_flags
=>
"
L|X|Y
",
op_flags
=>
"
L|X|Y
",
comment
=>
"
represents a virtual floating point compare
",
comment
=>
"
represents a virtual floating point compare
",
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
",
"
vfp
",
"
vfp
",
"
none
"
],
out
=>
[
"
none
",
"
none
",
"
eax
"
]
},
reg_req
=>
{
in
=>
[
"
gp
",
"
gp
",
"
vfp
",
"
vfp
",
"
none
"
],
out
=>
[
"
none
",
"
none
",
"
eax
"
]
},
...
...
ir/be/ia32/ia32_x87.c
View file @
906a0d83
...
@@ -870,7 +870,7 @@ static void vfp_dump_live(vfp_liveness live) {
...
@@ -870,7 +870,7 @@ static void vfp_dump_live(vfp_liveness live) {
* @param tmpl the template containing the 4 possible x87 opcodes
* @param tmpl the template containing the 4 possible x87 opcodes
*/
*/
static
int
sim_binop
(
x87_state
*
state
,
ir_node
*
n
,
const
exchange_tmpl
*
tmpl
)
{
static
int
sim_binop
(
x87_state
*
state
,
ir_node
*
n
,
const
exchange_tmpl
*
tmpl
)
{
int
op2_idx
,
op1_idx
;
int
op2_idx
=
0
,
op1_idx
;
int
out_idx
,
do_pop
=
0
;
int
out_idx
,
do_pop
=
0
;
ia32_attr_t
*
attr
;
ia32_attr_t
*
attr
;
ir_node
*
patched_insn
;
ir_node
*
patched_insn
;
...
...
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