projects
/
libfirm
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c07041d
)
we do need stack:I|S...
author
Matthias Braun
<matze@braunis.de>
Tue, 11 Mar 2008 15:34:50 +0000
(15:34 +0000)
committer
Matthias Braun
<matze@braunis.de>
Tue, 11 Mar 2008 15:34:50 +0000
(15:34 +0000)
[r18069]
ir/be/ia32/ia32_spec.pl
patch
|
blob
|
history
diff --git
a/ir/be/ia32/ia32_spec.pl
b/ir/be/ia32/ia32_spec.pl
index
dc349db
..
f3fe108
100644
(file)
--- a/
ir/be/ia32/ia32_spec.pl
+++ b/
ir/be/ia32/ia32_spec.pl
@@
-75,7
+75,7
@@
$arch = "ia32";
# One can also annotate some flags for each out, additional to irn_flags.
# They are separated from name with a colon ':', and concatenated by pipe '|'
# Only I and S are available at the moment (same meaning as in irn_flags).
# One can also annotate some flags for each out, additional to irn_flags.
# They are separated from name with a colon ':', and concatenated by pipe '|'
# Only I and S are available at the moment (same meaning as in irn_flags).
-# example: [ "frame:I", "stack:S", "M" ]
+# example: [ "frame:I", "stack:
I|
S", "M" ]
#
# comment: OPTIONAL comment for the node constructor
#
#
# comment: OPTIONAL comment for the node constructor
#
@@
-1369,7
+1369,7
@@
Push => {
reg_req => { in => [ "gp", "gp", "none", "esp", "gp" ], out => [ "esp", "none" ] },
ins => [ "base", "index", "mem", "val", "stack" ],
emit => '. push%M %unop4',
reg_req => { in => [ "gp", "gp", "none", "esp", "gp" ], out => [ "esp", "none" ] },
ins => [ "base", "index", "mem", "val", "stack" ],
emit => '. push%M %unop4',
- outs => [ "stack:S", "M" ],
+ outs => [ "stack:
I|
S", "M" ],
am => "source,binary",
latency => 2,
units => [ "GP" ],
am => "source,binary",
latency => 2,
units => [ "GP" ],
@@
-1379,7
+1379,7
@@
Pop => {
state => "exc_pinned",
reg_req => { in => [ "gp", "gp", "none", "esp" ], out => [ "gp", "none", "none", "esp" ] },
emit => '. pop%M %DAM0',
state => "exc_pinned",
reg_req => { in => [ "gp", "gp", "none", "esp" ], out => [ "gp", "none", "none", "esp" ] },
emit => '. pop%M %DAM0',
- outs => [ "res", "M", "unused", "stack:S" ],
+ outs => [ "res", "M", "unused", "stack:
I|
S" ],
ins => [ "base", "index", "mem", "stack" ],
am => "dest,unary",
latency => 3, # Pop is more expensive than Push on Athlon
ins => [ "base", "index", "mem", "stack" ],
am => "dest,unary",
latency => 3, # Pop is more expensive than Push on Athlon
@@
-1389,7
+1389,7
@@
Pop => {
Enter => {
reg_req => { in => [ "esp" ], out => [ "ebp", "esp", "none" ] },
emit => '. enter',
Enter => {
reg_req => { in => [ "esp" ], out => [ "ebp", "esp", "none" ] },
emit => '. enter',
- outs => [ "frame:I", "stack:S", "M" ],
+ outs => [ "frame:I", "stack:
I|
S", "M" ],
latency => 15,
units => [ "GP" ],
},
latency => 15,
units => [ "GP" ],
},
@@
-1397,7
+1397,7
@@
Enter => {
Leave => {
reg_req => { in => [ "esp", "ebp" ], out => [ "ebp", "esp" ] },
emit => '. leave',
Leave => {
reg_req => { in => [ "esp", "ebp" ], out => [ "ebp", "esp" ] },
emit => '. leave',
- outs => [ "frame:I", "stack:S" ],
+ outs => [ "frame:I", "stack:
I|
S" ],
latency => 3,
units => [ "GP" ],
},
latency => 3,
units => [ "GP" ],
},
@@
-1410,7
+1410,7
@@
AddSP => {
am => "source,binary",
emit => '. addl %binop',
latency => 1,
am => "source,binary",
emit => '. addl %binop',
latency => 1,
- outs => [ "stack:S", "M" ],
+ outs => [ "stack:
I|
S", "M" ],
units => [ "GP" ],
modified_flags => $status_flags
},
units => [ "GP" ],
modified_flags => $status_flags
},
@@
-1424,7
+1424,7
@@
SubSP => {
emit => ". subl %binop\n".
". movl %%esp, %D1",
latency => 2,
emit => ". subl %binop\n".
". movl %%esp, %D1",
latency => 2,
- outs => [ "stack:S", "addr", "M" ],
+ outs => [ "stack:
I|
S", "addr", "M" ],
units => [ "GP" ],
modified_flags => $status_flags
},
units => [ "GP" ],
modified_flags => $status_flags
},