This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
genflags and genemit disagree
- To: egcs at cygnus dot com
- Subject: genflags and genemit disagree
- From: Philipp Thomas <kthomas at gwdg dot de>
- Date: Mon, 26 Oct 1998 15:25:56 +0100 (MET)
iI
Hi,
while looking for ways to add prototypes to i386.h (which I'll write about
in another message) I stumbled over an odity regarding gen_call_pop() and
gen_call_value_pop(). The bug is that either genflags produces a wrong
prototype or genemit the wrong function.
As I don't understand rtl yet, I thought I'ld ask here for somebody to
explain.
Here is the relevant part form i386.md:
(define_expand "call_pop"
[(parallel [(call (match_operand:QI 0 "indirect_operand" "")
(match_operand:SI 1 "general_operand" ""))
(set (reg:SI 7)
(plus:SI (reg:SI 7)
(match_operand:SI 3 "immediate_operand"
"")))])]
How many parameters do result from this description ? I don't have the
generated code here, but if I remember correctly, genflags produces a
prototype with three rtx as parameter, while genemit produces a function
with four rtx.
As I suspect genflags of being the culprit, could somebody please have
a look at num_operands() in genemit.c and tell me where it could fail with
a rtl as above ?
Philipp
************************************************************
If builders would build houses like programmers did
their programs, the first woodpecker to come along would
mean the end of all civilization