; Options for the OR32 port of the compiler
|
; Options for the OR32 port of the compiler
|
; This file is part of GCC.
|
; This file is part of GCC.
|
;
|
;
|
; Copyright (C) 2010 Embecosm Limited
|
; Copyright (C) 2010 Embecosm Limited
|
;
|
;
|
; GCC is free software; you can redistribute it and/or modify it under
|
; 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
|
; the terms of the GNU General Public License as published by the Free
|
; Software Foundation; either version 3, or (at your option) any later
|
; Software Foundation; either version 3, or (at your option) any later
|
; version.
|
; version.
|
;
|
;
|
; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
; WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
; WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
; for more details.
|
; for more details.
|
;
|
;
|
; You should have received a copy of the GNU General Public License
|
; You should have received a copy of the GNU General Public License
|
; along with GCC; see the file COPYING3. If not see
|
; along with GCC; see the file COPYING3. If not see
|
; .
|
; .
|
|
|
mhard-float
|
mhard-float
|
Target RejectNegative Mask(HARD_FLOAT)
|
Target RejectNegative Mask(HARD_FLOAT)
|
Use hardware floating point
|
Use hardware floating point
|
|
|
msoft-float
|
msoft-float
|
Target RejectNegative InverseMask(HARD_FLOAT)
|
Target RejectNegative InverseMask(HARD_FLOAT)
|
Do not use hardware floating point
|
Do not use hardware floating point
|
|
|
mdouble-float
|
mdouble-float
|
Target Report RejectNegative Mask(DOUBLE_FLOAT)
|
Target Report RejectNegative Mask(DOUBLE_FLOAT)
|
Allow hardware floating-point instructions to cover both 32-bit and 64-bit operations
|
Allow hardware floating-point instructions to cover both 32-bit and 64-bit operations
|
|
|
mhard-div
|
mhard-div
|
Target RejectNegative Mask(HARD_DIV)
|
Target RejectNegative Mask(HARD_DIV)
|
Use hardware division
|
Use hardware division
|
|
|
msoft-div
|
msoft-div
|
Target RejectNegative InverseMask(HARD_DIV)
|
Target RejectNegative InverseMask(HARD_DIV)
|
Do not use hardware division
|
Do not use hardware division
|
|
|
mhard-mul
|
mhard-mul
|
Target RejectNegative Mask(HARD_MUL)
|
Target RejectNegative Mask(HARD_MUL)
|
Use hardware multiplication
|
Use hardware multiplication
|
|
|
msoft-mul
|
msoft-mul
|
Target RejectNegative InverseMask(HARD_MUL)
|
Target RejectNegative InverseMask(HARD_MUL)
|
Do not use hardware multiplication
|
Do not use hardware multiplication
|
|
|
msext
|
msext
|
Target Mask(MASK_SEXT)
|
Target Mask(MASK_SEXT)
|
Use sign-extending instructions
|
Use sign-extending instructions
|
|
|
mcmov
|
mcmov
|
Target Mask(MASK_CMOV)
|
Target Mask(MASK_CMOV)
|
Use conditional move instructions
|
Use conditional move instructions
|
|
|
mlogue
|
mlogue
|
Target Mask(SCHED_LOGUE)
|
Target Mask(SCHED_LOGUE)
|
Schedule prologue/epilogue
|
Schedule prologue/epilogue
|
|
|
mror
|
mror
|
Target Mask(MASK_ROR)
|
Target Mask(MASK_ROR)
|
Emit ROR instructions
|
Emit ROR instructions
|
|
|
mor32-newlib
|
mor32-newlib
|
Target RejectNegative
|
Target RejectNegative
|
Link with the OR32 newlib library
|
Link with the OR32 newlib library
|
|
|
mor32-newlib-uart
|
mor32-newlib-uart
|
Target RejectNegative
|
Target RejectNegative
|
Link with the OR32 newlib UART library
|
Link with the OR32 newlib UART library
|
|
|
|
mnewlib
|
|
Target Report RejectNegative Var(or32_libc,or32_libc_newlib) Init(OR32_LIBC_DEFAULT)
|
|
Compile for the Linux/Gnu/newlib based toolchain
|
|
|
|
;; muclibc / mglibc are defined in linux.opt, so we can't easily re-define
|
|
;; how they are recorded.
|
|
;; We could remove linux.opt from extra_options, but that could backfire if
|
|
;; more options are added that we don't want to remove. Hence we use
|
|
;; TARGET_HANDLE_OPTION.
|
|
muclibc
|
|
Target RejectNegative
|
|
Use uClibc
|
|
|
|
mglibc
|
|
Target RejectNegative
|
|
Use glibc (not supported)
|
|
|
;; provide struct padding as in previous releases.
|
;; provide struct padding as in previous releases.
|
;; Note that this will only affect STRUCTURE_SIZE_BOUNDARY, in particular
|
;; Note that this will only affect STRUCTURE_SIZE_BOUNDARY, in particular
|
;; make 2 byte structs 4-byte alignned and sized.
|
;; make 2 byte structs 4-byte alignned and sized.
|
;; We still use ROUND_TYPE_ALIGN to increase alignment of larger structs.
|
;; We still use ROUND_TYPE_ALIGN to increase alignment of larger structs.
|
mpadstruct
|
mpadstruct
|
Target Report RejectNegative Mask(PADSTRUCT)
|
Target Report RejectNegative Mask(PADSTRUCT)
|
Make structs a multiple of 4 bytes (warning: ABI altered)
|
Make structs a multiple of 4 bytes (warning: ABI altered)
|
|
|
mredzone=
|
mredzone=
|
Target RejectNegative Joined UInteger Var(or32_redzone) Init(128)
|
Target RejectNegative Joined UInteger Var(or32_redzone) Init(128)
|
Set the size of the stack below sp that is assumed to be safe from interrupts.
|
Set the size of the stack below sp that is assumed to be safe from interrupts.
|
|
|