Testresults: armv4l-unknown-linux-gnu

Richard Earnshaw rearnsha@arm.com
Sat Dec 2 09:09:00 GMT 2000


> 
> bkoz@redhat.com said:
> > Unrecognizable insn: (insn 7669 101 104 (set (mem:QI (reg/f:SI 13 sp)
> > 0) (reg:QI 2 r2)) -1 (nil) (nil)) 
> 
> I'm aware of this one.  It's been breaking my own cross build since we 
> switched to the new library.  Haven't had time to look at in detail yet, 
> but it is a thumb problem, related to the fact that there is no thumb 
> instruction that will store a byte directly on the stack.
> 
> R.
> 

Here's the patch.  It turns out that we were not restricting addresses 
properly during reload ;-(

The patch cleans up the address macros quite considerably and substatially 
reduces the code that is defined within #if REG_OK_STRICT.  However, 
despite the length of the ChangeLog entry, most of this is fairly cosmetic 
renaming.

I can now successfully compile libstdc++-v3 for arm-elf.  All I need to 
work out now is why the exception unwinder is failing so badly at run time 
(it's been broken since Jason changed the dwarf2 table emitting code).

Also bootstrapped on arm-netbsd.

R.

2000-12-02  Richard Earnshaw  <rearnsha@arm.com>

	* arm.h (ARM_REGNO_OK_FOR_BASE_P, THUMB_REGNO_MODE_OK_FOR_BASE_P): New
	macros.
	(REGNO_MODE_OK_FOR_BASE_P): Define in terms of above.
	(REGNO_OK_FOR_FOR_BASE_P): Delete.
	(ARM_REG_OK_FOR_BASE_P, THUMB_REG_MODE_OK_FOR_BASE_P): New macros for
	both strict and non-strict uses.
	(REG_MODE_OK_FOR_BASE_P): Define in terms of above.
	(ARM_REG_OK_FOR_INDEX_P, THUMB_REG_OK_FOR_INDEX_P): New macros.
	(REG_OK_FOR_INDEX_P): Define in terms of above.
	(REG_OK_FOR_BASE_P): Delete.
	(REG_OK_FOR_PRE_POST_P): Delete.
	(ARM_BASE_REGISTER_RTX_P): Renamed from BASE_REGISTER_RTX_P.
	(ARM_INDEX_REGISTER_RTX_P): Renamed from INDEX_REGISTER_RTX_P.
	(ARM_GO_IF_LEGITIMATE_INDEX): Renamed from GO_IF_LEGITIMATE_INDEX.
	(THUMB_LEGITIMATE_OFFSET): Renamed from LEGITIMATE_OFFSET.
	(ARM_GO_IF_LEGITIMATE_ADDRESS): Adjust for name changes.  Use ARM
	specific variants rather than general ones.  Use ARM_REG_OK_FOR_BASE_P
	in pre/post increment cases.
	(THUMB_GO_IF_LEGITIMATE_ADDRESS): Similarly for Thumb.
	(ARM_LEGITIMIZE_ADDRESS): Similarly.
	(THUMB_LEGITIMIZE_RELOAD_ADDRESS): Similarly.
	* arm.c (legitimate_pic_address): Similarly.




More information about the Libstdc++ mailing list