This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: ARM patches applied



Nick, 
Sorry, but I think some of this is incomplete or just plain wrong.


> 
> 1999-02-22  Nick Clifton  <nickc@cygnus.com>
> 
> 	* config/arm/arm.h: Add TARGET_CPU_strongarm1100.
> 	Add -mno-sched command line switch to disable scheduling of
> 	instructions into the function's prologue.
> 	(enum processor_type): Remove.
> 	(TARGET_OPTIONS): Add "fpe=" option to match documentation.
> 	(struct arm_cpu_select): Replace 'set_tune_p' and 'set_arch_p'
> 	fields with 'processors' field.
> 	(CONDITIONAL_REGISTER_USAGE): Allow r10 to be used if stack
> 	checking is not enabled.

RISCiX configurations must not use r10 at any time.  How does this 
interact with use of r10 as the PIC register when stack checking is off.

> 	(RETURN_IN_MEMORY): Always call arm_return_in_memory.

Does this maintain binary compatibility on NetBSD?

> 	
> 	* config/arm/arm.c: (arm_cpu): Remove.
> 	(tune_flags): Remove.
> 	(arm_is_strong): New variable: true iff the target processor is a 
> 	StrongARM.

What about arm8/arm9 support.  These also have load scheduling.

> 	(arm_is_6_or_7): New variable: true iff the target processor is an
> 	ARM6 or and ARM7.
> 	(arm_select): Fields reorganised.
> 	(struct processors): processor_type field removed.
> 	(all_procs): Remove.
> 	(all_cores): New array: Definitions of all known ARM cpu cores.
> 	(all_architectures): New array: Definitions of all known ARM
> 	architectures. 
> 	(streq): New macro.
> 	(FL_SCHED): New processor flag: processor required load
> 	scheduling.
> 	(FL_STRONG): New processor flag: processor is a StrongARM.

Likewise.

> 	(arm_override_options): Reorganised to make code clearer.
> 	(use_return_insn): Test for "not (TARGET_APCS and
> 	frame_pointer_needed)".
> 	(arm_return_in_memory): Improve handling of structures.

Is this backwards compatible?

> 	
> 	* config/arm/arm.md: Remove "cpu" attribute.  Replace with
> 	"is_strongarm" and "is_arm_6_or_7" attributes.

ARM8/ARM9?

> 	(zero_extendhisi2): Check for TARGET_SHORT_BY_BYTES before
> 	arm_arch4.
> 	(extendhisi2):  Check for TARGET_SHORT_BY_BYTES before arm_arch4. 

This is just wrong.  TARGET_SHORT_BY_BYTES means don't use ldr to access a 
short because the MMU will trap if it isn't aligned.  On a machine with 
ldrh this doesn't apply so there is no need to synthesise a short access 
with byte loads.




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]