mirror of
https://github.com/Stichting-MINIX-Research-Foundation/netbsd.git
synced 2025-09-12 08:36:05 -04:00
149 lines
4.0 KiB
Plaintext
149 lines
4.0 KiB
Plaintext
; Options for the Adapteva EPIPHANY port of the compiler
|
|
;
|
|
; Copyright (C) 2005-2013 Free Software Foundation, Inc.
|
|
; Contributed by Embecosm on behalf of Adapteva, Inc.
|
|
;
|
|
; This file is part of GCC.
|
|
;
|
|
; GCC is free software; you can redistribute it and/or modify it under
|
|
; the terms of the GNU General Public License as published by the Free
|
|
; Software Foundation; either version 3, or (at your option) any later
|
|
; version.
|
|
;
|
|
; GCC is distributed in the hope that it will be useful, but WITHOUT
|
|
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
|
; License for more details.
|
|
;
|
|
; You should have received a copy of the GNU General Public License
|
|
; along with GCC; see the file COPYING3. If not see
|
|
; <http://www.gnu.org/licenses/>.
|
|
|
|
mhalf-reg-file
|
|
Target Mask(HALF_REG_FILE)
|
|
Don't use any of r32..r63.
|
|
|
|
mprefer-short-insn-regs
|
|
Target Mask(PREFER_SHORT_INSN_REGS)
|
|
preferentially allocate registers that allow short instruction generation.
|
|
|
|
mbranch-cost=
|
|
Target RejectNegative Joined UInteger Var(epiphany_branch_cost) Init(3)
|
|
Set branch cost
|
|
|
|
mcmove
|
|
Target Mask(CMOVE)
|
|
enable conditional move instruction usage.
|
|
|
|
mnops=
|
|
Target RejectNegative Joined UInteger Var(epiphany_n_nops) Init(0)
|
|
set number of nops to emit before each insn pattern
|
|
|
|
; Problems with using the flags from fsub for comparison are:
|
|
; - Because of underflow (lack of subnormal numbers), different small numbers
|
|
; can compare as equal.
|
|
; - the set of comparisons is limited, and reversing comparisons doesn't work
|
|
; in the presence of NaNs.
|
|
; The latter problem might be tolerated with -ffinite-math-only , but nothing
|
|
; in -funsafe-math-optimizations says different small numbers may be considered
|
|
; equal.
|
|
msoft-cmpsf
|
|
Target Mask(SOFT_CMPSF)
|
|
Use software floating point comparisons
|
|
|
|
msplit-lohi
|
|
Target Mask(SPLIT_LOHI)
|
|
Enable split of 32 bit immediate loads into low / high part
|
|
|
|
mpost-inc
|
|
Target Mask(POST_INC)
|
|
Enable use of POST_INC / POST_DEC
|
|
|
|
mpost-modify
|
|
Target Mask(POST_MODIFY)
|
|
Enable use of POST_MODIFY
|
|
|
|
mstack-offset=
|
|
Target RejectNegative Joined UInteger Var(epiphany_stack_offset) Init(EPIPHANY_STACK_OFFSET)
|
|
Set number of bytes on the stack preallocated for use by the callee.
|
|
|
|
mround-nearest
|
|
target Mask(ROUND_NEAREST)
|
|
Assume round to nearest is selected for purposes of scheduling.
|
|
|
|
mlong-calls
|
|
Target Mask(LONG_CALLS)
|
|
Generate call insns as indirect calls
|
|
|
|
mshort-calls
|
|
Target Mask(SHORT_CALLS)
|
|
Generate call insns as direct calls
|
|
|
|
msmall16
|
|
Target Mask(SMALL16)
|
|
Assume labels and symbols can be addressed using 16 bit absolute addresses.
|
|
|
|
mfp-mode=
|
|
Target RejectNegative Joined Var(epiphany_normal_fp_mode) Enum(attr_fp_mode) Init(FP_MODE_CALLER)
|
|
|
|
; The values are from enum attr_fp_mode, but using that enum would bring
|
|
; problems with enum forward declarations.
|
|
Enum
|
|
Name(attr_fp_mode) Type(int)
|
|
|
|
EnumValue
|
|
Enum(attr_fp_mode) String(caller) Value(FP_MODE_CALLER)
|
|
|
|
EnumValue
|
|
Enum(attr_fp_mode) String(round-nearest) Value(FP_MODE_ROUND_NEAREST)
|
|
|
|
EnumValue
|
|
Enum(attr_fp_mode) String(truncate) Value(FP_MODE_ROUND_TRUNC)
|
|
|
|
EnumValue
|
|
Enum(attr_fp_mode) String(int) Value(FP_MODE_INT)
|
|
|
|
may-round-for-trunc
|
|
Target Mask(MAY_ROUND_FOR_TRUNC)
|
|
A floatig point to integer truncation may be replaced with rounding to save mode switching
|
|
|
|
mvect-double
|
|
Target Mask(VECT_DOUBLE)
|
|
Vectorize for double-word operations.
|
|
|
|
max-vect-align=
|
|
Target RejectNegative Joined Var(epiphany_vect_align) Enum(vect_align) Init(8)
|
|
|
|
Enum
|
|
Name(vect_align) Type(int)
|
|
|
|
EnumValue
|
|
Enum(vect_align) String(4) Value(4)
|
|
|
|
EnumValue
|
|
Enum(vect_align) String(8) Value(8)
|
|
|
|
msplit-vecmove-early
|
|
Target Mask(SPLIT_VECMOVE_EARLY)
|
|
Split unaligned 8 byte vector moves before post-modify address generation.
|
|
|
|
mfp-iarith
|
|
Target Mask(FP_IARITH)
|
|
Use the floating point unit for integer add/subtract.
|
|
|
|
m1reg-
|
|
Target RejectNegative Joined Var(epiphany_m1reg) Enum(m1reg) Init(-1)
|
|
Set register to hold -1.
|
|
|
|
Enum
|
|
Name(m1reg) Type(int)
|
|
|
|
EnumValue
|
|
Enum(m1reg) String(none) Value(-1)
|
|
|
|
EnumValue
|
|
Enum(m1reg) String(r43) Value(43)
|
|
|
|
EnumValue
|
|
Enum(m1reg) String(r63) Value(63)
|