🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.gcc.help
Article #53512

Gcc porting bug!

#53512
From: Benjamin W. Lee
Date: Tue, 05 Nov 1991 23:41
46 lines
1994 bytes
(insn:QI 10 8 27 (set (reg:SI 5)
       (mem/s:SI (plus:SI (mem:SI (plus:SI (reg:SI 8)
                       (const_int 2)))
               (const_int 2)))) 25 (nil)
   (nil))

Well, the above pattern is generated by reload which
replace

(insn 4 3 5 (set (reg/v:SI 21)
       (mem:SI (plus:SI (reg:SI 8)
               (const_int 2)))) -1 (nil)
   (expr_list:REG_EQUIV (mem:SI (plus:SI (reg:SI 8)
               (const_int 2)))
       (nil)))

into

(insn 10 8 12 (set (mem:SI (plus:SI (reg:SI 7)
               (const_int -2)))
       (mem/s:SI (plus:SI (reg/v:SI 21)
               (const_int 2)))) -1 (nil)
   (nil))

What did I do wrong?
It seems REG_EQUIV is stored in reg_equiv_mem[] when
entering reload and is used to replace all pseudo
register just before leaving. I thought
find_reloads_address checks the validity of
addresses, including reg_equiv_mem. However, at that
point, the regno is not pseudo register number and
(+, reg, const_int) is quickly disposed anyway.

I also examined m68k code gen which allocate a hard
reg at the same spot and used it for later references.
Which means something I touched inside tm.h/*.md has
caused this.

HELP!!!

BTW, thanks to albaugh%dms@netcom.com for your
suggestion. Mail bounced AND I've not got to the
bottom of two register addressing yet. Yes, the
fix I mentioned earlier stinks. I know. I've got
so much problem that it will take a while to get
to that one.
Technical Details
Message-ID: <1991Nov5.234137.2117@digi.lonestar.org>
Path: arc1-ca.pugleaf.net!gmdzi!zeus.ieee.org!sdd.hp.com!swrinde!news.dell.com!uudell!bigtex!texsun!digi!blee

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: 11318c,c823c155f6fbfc33,start
X-Google-Attributes: gid11318c,public
X-Google-ArrivalTime: 1991-11-07 06:42:41 PST
Path: arc1-ca.pugleaf.net!gmdzi!zeus.ieee.org!sdd.hp.com!swrinde!news.dell.com!uudell!bigtex!texsun!digi!blee
From: blee@digi.lonestar.org (Benjamin W. Lee)
Newsgroups: gnu.gcc.help
Subject: Gcc porting bug!
Message-ID: <1991Nov5.234137.2117@digi.lonestar.org>
Date: 5 Nov 91 23:41:37 GMT
Distribution: gnu
Organization: DSC Communications, Plano Tx.
Lines: 46