[patch] new portlet: cirrus-maverick
Nick Clifton
nickc@redhat.com
Thu Aug 15 02:47:00 GMT 2002
Hi Aldy,
> 2002-08-13 Aldy Hernandez <aldyh@redhat.com>
>
> * config/arm/arm.h (TARGET_CPU_armmaverick): New.
> Check TARGET_CPU_DEFAULT for maverick.
> (CPP_CPU_ARCH_SPEC): Add support for maverick.
> (MAVERICK_FIX_INVALID_INSNS): New macro.
> (TARGET_ANY_HARD_FLOAT): Same.
> (TARGET_MAVERICK): Same.
> (TARGET_MAVERICK_FIX_INVALID_INSNS): Same.
> (TARGET_SWITCHES): Add maverick-fix-invalid-insns,
> no-maverick-fix-invalid-insns.
> (floating_point_type): Add FP_MAVERICK.
> (FLOAT_WORDS_BIG_ENDIAN): Adjust for maverick.
> (CONDITIONAL_REGISTER_USAGE): Same.
> (FIRST_MAVERICK_FP_REGNUM): New.
> (LAST_MAVERICK_FP_REGNUM): New.
> (IS_MAVERICK_REGNUM): New.
> (FIRST_PSEUDO_REGISTER): Change to 43.
> (reg_class): Add MAVERICK_REGS.
> (REG_CLASS_NAMES): Same.
> (REG_CLASS_CONTENTS): Same.
> (REG_CLASS_FROM_LETTER): Add 'v'.
> (EXTRA_CONSTRAINT_ARM): Add 'T'.
> (SECONDARY_INPUT_RELOAD_CLASS): Disallow constants in Maverick
> registers.
> (ARM_LEGITIMIZE_RELOAD_ADDRESS): Adjust for maverick.
> (CLASS_MAX_NREGS): Same.
> (REGISTER_MOVE_COST): Same.
> (LIBCALL_VALUE): Same.
> (FUNCTION_VALUE_REGNO_P): Same.
> (ARM_GO_IF_LEGITIMATE_INDEX): Same.
> (CLASS_CANNOT_CHANGE_MODE): New.
> (CLASS_CANNOT_CHANGE_MODE_P): New.
> (PREDICATE_CODES): Add maverick_fp_register, maverick_shift_const,
> maverick_register_operand.
>
> * config/arm/arm.c (FL_MAVERICK): New.
> New global arm_is_maverick.
> (all_cores): Change arm9e to armmaverick.
> (all_architectures): Add armmaverick.
> (arm_override_options): Adjust for maverick.
> (arm_select_cc_mode): Same.
> (maverick_memory_offset): New.
> (maverick_register_operand): New.
> (maverick_fp_register): New.
> (maverick_shift_const): New.
> (is_load_address): New.
> (is_maverick_insn): New.
> (maverick_reorg): New.
> (arm_reorg): Reorg maverick insns.
> (arm_print_operand): Add 's'.
>
> * config/arm/arm.md: New function units maverick_fpa.
> New attribute maverick.
> (adddi3): Adjust for maverick.
>
> Disallow all DI patterns for maverick.
>
> Change float SF patterns to expanders. Rename patterns to
> *arm_blah. Add a corresponding maverick pattern.
>
> New patterns: maverick_adddi3, *maverick_addsi3, *maverick_addsf3,
> *maverick_adddf3, maverick_subdi3, *maverick_subsi3_insn,
> *maverick_subsf3, *maverick_subdf3, *maverick_mulsi3, muldi3,
> *maverick_mulsi3addsi, *maverick_mulsi3subsi, *maverick_mulsf3,
> *maverick_muldf3, *maverick_ashl_const, *maverick_ashiftrt_const,
> *maverick_ashlsi3, *maverick_ashldi3, *maverick_ashldi_const,
> *maverick_ashiftrtdi_const, *maverick_ashldi3, *maverick_ashldi_const,
> *maverick_ashiftrtdi_const, *maverick_negdi2, *maverick_negsi2,
> "*maverick_negsf2, *arm_negdf2, *maverick_negdf2, *maverick_abssi2,
> *maverick_abssf2, *maverick_absdf2, *maverick_floatsisf2,
> *maverick_floatsidf2, floatdisf2, floatdidf2, *maverick_truncdfsi2,
> *maverick_truncdfsf2, *maverick_extendsfdf2, *maverick_arm_movdi,
> *maverick_arm_movsi_insn, *maverick_movsf_hard_insn,
> *maverick_movdf_hard_insn, *maverick_cmpsf, *maverick_cmpdf, cmpdi,
> *maverick_cmpdi, *maverick_cmpsi_1.
>
> Add v constraint to call_value_reg, call_value_mem,
> call_value_symbol, *sibcall_value_insn.
>
> * config/arm/arm-protos.h: Add prototypes for maverick_fp_register,
> maverick_general_operand, maverick_register_operand,
> maverick_shift_const, maverick_memory_offset.
>
> * gcc/doc/invoke.texi (ARM Options): Document
> maverick-fix-invalid-insns and no-maverick-fix-invalid-insns.
>
> * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add maverick
> registers.
> (REGISTER_NAMES): Same.
>
> * config/arm/t-maverick-elf: New.
>
> * config.gcc: Add support for armmaverick.
Approved by me as well - please apply.
Cheers
Nick
More information about the Gcc-patches
mailing list