diff options
author | hp <hp@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-11-24 22:57:28 +0000 |
---|---|---|
committer | hp <hp@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-11-24 22:57:28 +0000 |
commit | edfcb0b1a2b80eb631f836c11169a9019855a960 (patch) | |
tree | 8ffcec9deac832fcce2485eb21d8eaba4fcd90a4 | |
parent | 3655c95dc4ea0c10167fc53cd2a311501e69ee29 (diff) | |
download | gcc-edfcb0b1a2b80eb631f836c11169a9019855a960.tar.gz |
* genextract.c (main): Set ro_loc for peepholes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47308 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/genextract.c | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d5ca26c35d9..1043d2d84d1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2001-11-24 Hans-Peter Nilsson <hp@axis.com> + + * genextract.c (main): Set ro_loc for peepholes. + Sat Nov 24 17:04:10 2001 Douglas B. Rupp <rupp@gnat.com> * fix-header.c (main): Move inf_buffer termination and inf_limit diff --git a/gcc/genextract.c b/gcc/genextract.c index 7c111368c03..ae77ac9ba7b 100644 --- a/gcc/genextract.c +++ b/gcc/genextract.c @@ -434,9 +434,11 @@ from the machine description file `md'. */\n\n"); /* The vector in the insn says how many operands it has. And all it contains are operands. In fact, the vector was - created just for the sake of this function. */ + created just for the sake of this function. We need to set the + location of the operands for sake of simplifications after + extraction, like eliminating subregs. */ printf (" for (i = XVECLEN (pat, 0) - 1; i >= 0; i--)\n"); - printf (" ro[i] = XVECEXP (pat, 0, i);\n"); + printf (" ro[i] = *(ro_loc[i] = &XVECEXP (pat, 0, i));\n"); printf (" break;\n\n"); } |