/* tc-or32.h -- Assemble for the OpenRISC 1000.
   Copyright (C) 2002, 2003. 2005 Free Software Foundation, Inc.
   Contributed by Damjan Lampret <lampret@opencores.org>.
   Based upon a29k port.

   This file is part of GAS, the GNU Assembler.

   GAS 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 2, or (at your option)
   any later version.

   GAS 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 GAS; see the file COPYING.  If not, write to
   the Free Software Foundation, 51 Franklin Street - Fifth Floor,
   Boston, MA 02110-1301, USA.  */

#define TC_OR32

#define TARGET_BYTES_BIG_ENDIAN 1

#define LEX_DOLLAR 1

#ifdef OBJ_ELF
#define TARGET_FORMAT  "elf32-or32"
#define TARGET_ARCH    bfd_arch_or32
#endif

#ifdef OBJ_COFF
#define TARGET_FORMAT  "coff-or32-big"
#define reloc_type     int
#endif

#define tc_unrecognized_line(c) or32_unrecognized_line (c)

extern int or32_unrecognized_line (int);

#define tc_headers_hook(a)          ; /* Not used.  */
#define tc_headers_hook(a)          ; /* Not used.  */
#define tc_crawl_symbol_chain(a)    ; /* Not used.  */
#define tc_coff_symbol_emit_hook(a) ; /* Not used.  */

#define AOUT_MACHTYPE               80
#define TC_COFF_FIX2RTYPE(fix_ptr)  tc_coff_fix2rtype (fix_ptr)
#define BFD_ARCH                    bfd_arch_or32
#define COFF_MAGIC                  SIPFBOMAGIC

/* No shared lib support, so we don't need to ensure externally
   visible symbols can be overridden.  */
#define EXTERN_FORCE_RELOC 0

#ifdef OBJ_ELF
/* Values passed to md_apply_fix don't include the symbol value.  */
#define MD_APPLY_SYM_VALUE(FIX) 0
#endif

/* Should the reloc be output ?
   on the 29k, this is true only if there is a symbol attached.
   on the h8, this is always true, since no fixup is done.  */
#define TC_COUNT_RELOC(x)           (x->fx_addsy)
#define TC_CONS_RELOC               RELOC_32

#define COFF_FLAGS                  F_AR32W
#define NEED_FX_R_TYPE

#define ZERO_BASED_SEGMENTS
