This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: simple question
- To: owinebar at free-expression dot org
- Subject: Re: simple question
- From: Mike Stump <mrs at wrs dot com>
- Date: Fri, 15 Oct 1999 14:39:40 -0700 (PDT)
- Cc: gcc at gcc dot gnu dot org
> Date: Fri, 15 Oct 1999 03:34:22 -0500 (EST)
> From: Lynn Winebarger <owinebar@free-expression.org>
> How are 48-bit pointers for the i386 represented in RTL? If they're
> never generated by gcc, how _would_ they look? (I'm looking at
> disassembled code to translate to RTL)
A simple question, ha! Say you have:
es = x;
ax = y;
[es:ax] = z;
In RTL this is:
(set (reg 1) (mem (symref x)))
(set (reg 2) (mem (symref y)))
(set (mem (plus (shiftl (reg 1) (const_int <whatever>))
(reg 2)))
(mem (symref z)))
and you realize that Pmode is 64 bits now. You have to crack the rtl
down to valid operands and so forth, but you get the idea. When you
do analysis on the memory addresses, you should be able to regenerate
the 32 bit values (if the code came from a compiler).
I look forward to seeing the GNU (de)re-compiler!