-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Mon, Feb 28, 2005 at 10:13:00AM +0100, Josef Angermeier wrote:
> Rehi
> > It's been done a couple of times already, first by me, and later my
> > code was extended by a couple of other people. Don't know if you
> > want to start from scratch "on principle" though, otherwise search
> > the mail archives.
>
> Just forget about the thesis. Tell me where to get that patch/code !
LOL. I guess I'm one of those "other people", but alas, I've been
having difficulty since the whole tree-SSA move.
/mnt/disk2/src/gcc-i86/gcc/xgcc -B/mnt/disk2/src/gcc-i86/gcc/
-B/usr/cross/i86-none/bin/ -B/usr/cross/i86-none/lib/ -isystem
/usr/cross/i86-none/include -isystem /usr/cross/i86-none/sys-include -O2
-DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition -isystem ./include -g
-DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I.
-I. -I/mnt/disk2/src/gcc/gcc -I/mnt/disk2/src/gcc/gcc/.
-I/mnt/disk2/src/gcc/gcc/../include -I/mnt/disk2/src/gcc/gcc/../libcpp/include
-DL_ashrdi3 -c /mnt/disk2/src/gcc/gcc/libgcc2.c -o libgcc/./_ashrdi3.o
cc1: warning: target system does not support debug output
/mnt/disk2/src/gcc/gcc/libgcc2.c: In function '__ashrdi3':
/mnt/disk2/src/gcc/gcc/libgcc2.c:485: error: unable to find a register to spill
in class 'BASE_REGS'
/mnt/disk2/src/gcc/gcc/libgcc2.c:485: error: this is the insn:
(insn 28 26 29 1 /mnt/disk2/src/gcc/gcc/libgcc2.c:464 (set (mem/i:HI (reg/f:HI
8 si [orig:30 D.1371 ] [30]) [5 <result>+0 S2 A16])
(subreg:HI (reg/v:DI 31 [ u ]) 0)) 1 {*movhi} (nil)
(nil))
/mnt/disk2/src/gcc/gcc/libgcc2.c:485: internal compiler error: in
spill_failure, at reload1.c:1872
Please submit a full bug report,
with preprocessed source if appropriate.
(Sorry, don't want to show too much code before paperwork is in order,
which may or may not take a while. Any hints? Or should I just go and
implement all the problem libgcc2 patterns in assembly?)
BTW DJ, I've changed the register model to treat al, ah, etc. as
first-class registers, with ax, dx:ax as simply groupings a la
HARD_REGNO_NREGS.
#define REG_CLASS_CONTENTS \
{ 0, /* NO_REGS */ \
3, 0xc, /* AXREGS, DXREGS */ \
0x30, 0xc0, /* CXREGS, BXREGS */ \
0x400, /* BPREGS */ \
0x100, 0x200, /* SIREGS, DIREGS */ \
0xff, /* Q_REGS */ \
0x300, /* INDEX_REGS */ \
0x440, /* BASE_REGS */ \
0xfff, /* GENERAL_REGS */ \
0x01000, /* FP_TOP_REGS */ \
0x02000, /* FP_SECOND_REGS */ \
0xff000, /* FLOAT_REGS */ \
0x01fffff /* ALL_REGS */ }
#define FIXED_REGISTERS \
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
/* al,ah,dl,dh,cl,ch,bl,bh,si,di,bp,sp */ \
0, 0, 0, 0, 0, 0, 0, 0, 1, 1 } \
/* st0,st1,st2,st3,st4,st5,st6,st7,arg,flags */
#define CALL_USED_REGISTERS \
{ 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, \
/* al,ah,dl,dh,cl,ch,bl,bh,si,di,bp,sp */ \
1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } \
/* st0,st1,st2,st3,st4,st5,st6,st7,arg,flags */
Not sure what else is pertinent without pasting it all.
- --
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.4 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQFCI19m/FmLrNfLpjMRAnB4AKCYpPrMnOJJKbn15WELjARGQiq+ogCfR65H
dc78Ra98g/HVJrJ9hwsy1a8=
=uVoT
-----END PGP SIGNATURE-----