; Options for the moxie compiler port.

; Copyright (C) 2012-2021 Free Software Foundation, 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/>.

meb
Target RejectNegative InverseMask(LITTLE_ENDIAN)
Generate big-endian code.

mel
Target RejectNegative Mask(LITTLE_ENDIAN)
Generate little-endian code.

mmul.x
Target Mask(HAS_MULX)
Enable MUL.X and UMUL.X instructions.

; Ignored by the compiler
mno-crt0
Target RejectNegative
