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
9156483f
Commit
9156483f
authored
Mar 30, 2006
by
Michael Beck
Browse files
more x87 emitters updated
parent
fcc2cb21
Changes
1
Hide whitespace changes
Inline
Side-by-side
ir/be/ia32/ia32_spec.pl
View file @
9156483f
...
...
@@ -474,14 +474,14 @@ $additional_opcodes = 0;
"
emit
"
=>
'
. lea %D1, %ia32_emit_am /* LEA(%A1, %A2) */
'
},
#--------------------------------------------------------#
# __ _ _ _ #
# / _| | | | | | #
# | |_| | ___ __ _| |_ _ __ ___ __| | ___ ___ #
# | _| |/ _ \ / _` | __| | '_ \ / _ \ / _` |/ _ \/ __| #
# | | | | (_) | (_| | |_ | | | | (_) | (_| | __/\__ \ #
# |_| |_|\___/ \__,_|\__| |_| |_|\___/ \__,_|\___||___/ #
#--------------------------------------------------------#
#--------------------------------------------------------
---------------------
#
#
_____ _____ ______
__ _ _ _ #
#
/ ____/ ____| ____|
/ _| | | | | | #
#
| (___| (___ | |__
| |_| | ___ __ _| |_ _ __ ___ __| | ___ ___ #
#
\___ \\___ \| __|
| _| |/ _ \ / _` | __| | '_ \ / _ \ / _` |/ _ \/ __| #
#
____) |___) | |____
| | | | (_) | (_| | |_ | | | | (_) | (_| | __/\__ \ #
#
|_____/_____/|______|
|_| |_|\___/ \__,_|\__| |_| |_|\___/ \__,_|\___||___/ #
#--------------------------------------------------------
---------------------
#
# commutative operations
...
...
@@ -647,16 +647,19 @@ $additional_opcodes = 0;
"
comment
"
=>
"
construct Conv Floating Point -> Floating Point
",
},
#--------------------------------------------------------#
# __ _ _ _ #
# / _| | | | | | #
# | |_| | ___ __ _| |_ _ __ ___ __| | ___ ___ #
# | _| |/ _ \ / _` | __| | '_ \ / _ \ / _` |/ _ \/ __| #
# | | | | (_) | (_| | |_ | | | | (_) | (_| | __/\__ \ #
# |_| |_|\___/ \__,_|\__| |_| |_|\___/ \__,_|\___||___/ #
#--------------------------------------------------------#
# virtual float nodes
#----------------------------------------------------------#
# _ _ _ __ _ _ #
# (_) | | | | / _| | | | #
# __ ___ _ __| |_ _ _ __ _| | | |_| | ___ __ _| |_ #
# \ \ / / | '__| __| | | |/ _` | | | _| |/ _ \ / _` | __| #
# \ V /| | | | |_| |_| | (_| | | | | | | (_) | (_| | |_ #
# \_/ |_|_| \__|\__,_|\__,_|_| |_| |_|\___/ \__,_|\__| #
# | | #
# _ __ ___ __| | ___ ___ #
# | '_ \ / _ \ / _` |/ _ \/ __| #
# | | | | (_) | (_| | __/\__ \ #
# |_| |_|\___/ \__,_|\___||___/ #
#----------------------------------------------------------#
"
vfadd
"
=>
{
"
irn_flags
"
=>
"
R
",
...
...
@@ -801,16 +804,13 @@ $additional_opcodes = 0;
"
reg_req
"
=>
{
"
out
"
=>
[
"
vfp
"
]
},
},
#--------------------------------------------------------#
# __ _ _ _ #
# / _| | | | | | #
# | |_| | ___ __ _| |_ _ __ ___ __| | ___ ___ #
# | _| |/ _ \ / _` | __| | '_ \ / _ \ / _` |/ _ \/ __| #
# | | | | (_) | (_| | |_ | | | | (_) | (_| | __/\__ \ #
# |_| |_|\___/ \__,_|\__| |_| |_|\___/ \__,_|\___||___/ #
#--------------------------------------------------------#
# x87 float nodes
#------------------------------------------------------------------------#
# ___ _____ __ _ _ _ #
# __ _( _ )___ | / _| | ___ __ _| |_ _ __ ___ __| | ___ ___ #
# \ \/ / _ \ / / | |_| |/ _ \ / _` | __| | '_ \ / _ \ / _` |/ _ \/ __| #
# > < (_) |/ / | _| | (_) | (_| | |_ | | | | (_) | (_| | __/\__ \ #
# /_/\_\___//_/ |_| |_|\___/ \__,_|\__| |_| |_|\___/ \__,_|\___||___/ #
#------------------------------------------------------------------------#
"
fadd
"
=>
{
"
op_flags
"
=>
"
R
",
...
...
@@ -953,33 +953,30 @@ $additional_opcodes = 0;
# x87 Load and Store
"
fld
"
=>
{
"
op_flags
"
=>
"
R
",
"
rd_constructor
"
=>
"
NONE
",
"
op_flags
"
=>
"
L|F
",
"
op_flags
"
=>
"
R|
L|F
",
"
state
"
=>
"
exc_pinned
",
"
comment
"
=>
"
x87 fp Load: Load(ptr, mem) = LD ptr -> reg
",
"
reg_req
"
=>
{
},
"
emit
"
=>
'
. fld %ia32_emit_
x87_binop
/* Load((%A1)) -> %D1 */
'
"
emit
"
=>
'
. fld %ia32_emit_
am
/* Load((%A1)) -> %D1 */
'
},
"
fst
"
=>
{
"
op_flags
"
=>
"
R
",
"
rd_constructor
"
=>
"
NONE
",
"
op_flags
"
=>
"
L|F
",
"
op_flags
"
=>
"
R|
L|F
",
"
state
"
=>
"
exc_pinned
",
"
comment
"
=>
"
x87 fp Store: Store(ptr, val, mem) = ST ptr,val
",
"
reg_req
"
=>
{
},
"
emit
"
=>
'
. fst %ia32_emit_
x87_binop
/* Store(%A3) -> (%A1) */
'
"
emit
"
=>
'
. fst %ia32_emit_
am
/* Store(%A3) -> (%A1) */
'
},
"
fstp
"
=>
{
"
op_flags
"
=>
"
R
",
"
rd_constructor
"
=>
"
NONE
",
"
op_flags
"
=>
"
L|F
",
"
op_flags
"
=>
"
R|
L|F
",
"
state
"
=>
"
exc_pinned
",
"
comment
"
=>
"
x87 fp Store: Store(ptr, val, mem) = ST ptr,val
",
"
reg_req
"
=>
{
},
"
emit
"
=>
'
. fstp %ia32_emit_
x87_binop
/* Store(%A3) -> (%A1) and pop */
'
"
emit
"
=>
'
. fstp %ia32_emit_
am
/* Store(%A3) -> (%A1) and pop */
'
},
# Conversions
...
...
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