diff options
author | Nick Clifton <nickc@gcc.gnu.org> | 2013-01-31 18:36:02 +0000 |
---|---|---|
committer | Nick Clifton <nickc@gcc.gnu.org> | 2013-01-31 18:36:02 +0000 |
commit | dbdbd982df2d044f3b43b2f41ef1ada5667160f9 (patch) | |
tree | 74fc8090f85709b8d53297f1a682f42daa03d155 /gcc/config.gcc | |
parent | 73861a4142c04fdeb77b72f8c534e2e967a69bae (diff) | |
download | gcc-dbdbd982df2d044f3b43b2f41ef1ada5667160f9.zip gcc-dbdbd982df2d044f3b43b2f41ef1ada5667160f9.tar.gz gcc-dbdbd982df2d044f3b43b2f41ef1ada5667160f9.tar.bz2 |
lib1funcs.S: Add support for e3v5 architecture variant.
* config/v850/lib1funcs.S: Add support for e3v5 architecture
variant.
* config/v850/constraints.md (Q): Define as a memory constraint.
* config/v850/predicates.md (label_ref_operand): New predicate.
(e3v5_shift_operand): New predicate.
(ior_operator): New predicate.
* config/v850/t-v850: Add e3v5 multilib.
* config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
(v850_gen_movdi): Prototype.
* config/v850/v850.c: Add support for e3v5 architecture.
Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
TARGET_V850E_UP.
(construct_save_jarl): Add e3v5 long JARL support.
(v850_adjust_insn_length): New function. Adjust length of call
insns when using e3v5 instructions.
(v850_gen_movdi): New function: Generate instructions to move a
DImode value.
* config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
(CPP_SPEC): Define __v850e3v5__ as appropriate.
(TARGET_USE_FPU): Enable for e3v5.
(CONST_OK_FOR_W): New macro.
(ADJUST_INSN_LENGTH): Define.
* config/v850/v850.md (UNSPEC_LOOP): Define.
(attr cpu): Add v850e3v5.
Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
(movdi): New pattern.
(movdi_internal): New pattern.
(cbranchsf4): Conditionalize on TARGET_USE_FPU.
(cbranchdf4): Conditionalize on TARGET_USE_FPU.
(cstoresf4): Likewise.
(cstoredf4): Likewise.
(insv): New pattern.
(rotlso3_a): New pattern.
(rotlsi3_b): New pattern
(rotlsi3_v850e3v5): New pattern.
(doloop_begin): New pattern.
(fix_loop_counter): New pattern.
(doloop_end): New pattern.
(branch_normal): Add e3v5 long branch support.
(branch_invert): Likewise.
(branch_z_normal): Likewise.
(branch_z_invert): Likewise.
(branch_nz_normal): Likewise.
(branch_nz_invert): Likewise.
(call_internal_short): Add e3v5 register-indirect JARL support.
(call_internal_long): Likewise.
(call_value_internal_short): Likewise.
(call_value_internal_long): Likewise.
* config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
(mloop): New option.
* config.gcc: Add support for configuring v840e3v5 target.
* doc/invoke.texi: Document new v850 specific command line
options.
From-SVN: r195623
Diffstat (limited to 'gcc/config.gcc')
-rw-r--r-- | gcc/config.gcc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/config.gcc b/gcc/config.gcc index ca76fc8..b6a6ad0 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -2554,6 +2554,9 @@ v850-*-rtems*) ;; v850*-*-*) case ${target} in + v850e3v5-*-*) + target_cpu_default="TARGET_CPU_v850e3v5" + ;; v850e2v3-*-*) target_cpu_default="TARGET_CPU_v850e2v3" ;; @@ -3614,7 +3617,7 @@ case "${target}" in v850*-*-*) supported_defaults=cpu case ${with_cpu} in - "" | v850e | v850e1 | v850e2 | v850es | v850e2v3) + "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5) # OK ;; *) @@ -3741,7 +3744,7 @@ case ${target} in case "x$with_cpu" in x) ;; - xv850e | xv850e1 | xv850e2 | xv850e2v3) + xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5) target_cpu_default2="TARGET_CPU_$with_cpu" ;; xv850es) |