tc-s390.h revision 272461
1228753Smm/* tc-s390.h -- Header file for tc-s390.c.
2228753Smm   Copyright 2000, 2001, 2002, 2003, 2004, 2005
3228753Smm   Free Software Foundation, Inc.
4228753Smm   Written by Martin Schwidefsky (schwidefsky@de.ibm.com).
5228753Smm
6228753Smm   This file is part of GAS, the GNU Assembler.
7228753Smm
8228753Smm   GAS is free software; you can redistribute it and/or modify
9228753Smm   it under the terms of the GNU General Public License as published by
10228753Smm   the Free Software Foundation; either version 2, or (at your option)
11228753Smm   any later version.
12228753Smm
13228753Smm   GAS is distributed in the hope that it will be useful,
14228753Smm   but WITHOUT ANY WARRANTY; without even the implied warranty of
15228753Smm   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16228753Smm   GNU General Public License for more details.
17228753Smm
18228753Smm   You should have received a copy of the GNU General Public License
19228753Smm   along with GAS; see the file COPYING.  If not, write to the Free
20228753Smm   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
21228753Smm   02110-1301, USA.  */
22228753Smm
23228753Smm#define TC_S390
24228753Smm
25228753Smmstruct fix;
26228753Smm
27228753Smm#define TC_FORCE_RELOCATION(FIX) tc_s390_force_relocation(FIX)
28232153Smmextern int tc_s390_force_relocation PARAMS ((struct fix *));
29232153Smm
30232153Smm/* Don't resolve foo@PLT-bar to offset@PLT.  */
31228753Smm#define TC_FORCE_RELOCATION_SUB_SAME(FIX, SEG)	\
32228753Smm  (! SEG_NORMAL (SEG) || TC_FORCE_RELOCATION (FIX))
33228753Smm
34228753Smm#define tc_fix_adjustable(X)  tc_s390_fix_adjustable(X)
35228753Smmextern int tc_s390_fix_adjustable PARAMS ((struct fix *));
36232153Smm
37232153Smm/* Values passed to md_apply_fix don't include symbol values.  */
38232153Smm#define MD_APPLY_SYM_VALUE(FIX) 0
39228753Smm
40228753Smm/* The target BFD architecture.  */
41228753Smm#define TARGET_ARCH bfd_arch_s390
42228753Smmextern enum bfd_architecture s390_arch PARAMS ((void));
43228753Smm
44228753Smm/* The target BFD format.  */
45228753Smm#define TARGET_FORMAT s390_target_format()
46228753Smmextern const char *s390_target_format PARAMS ((void));
47228753Smm
48228753Smm/* Set the endianness we are using.  */
49228753Smm#define TARGET_BYTES_BIG_ENDIAN 1
50228753Smm
51228753Smm/* Whether or not the target is big endian */
52228753Smmextern int target_big_endian;
53228753Smm
54228753Smm/* Permit temporary numeric labels.  */
55228753Smm#define LOCAL_LABELS_FB 1
56228753Smm
57228753Smm/* $ is used to refer to the current location.  */
58228753Smm/* #define DOLLAR_DOT */
59228753Smm
60228753Smm/* We need to be able to make relocations involving the difference of
61228753Smm   two symbols.  This includes the difference of two symbols when
62228753Smm   one of them is undefined (this comes up in PIC code generation).
63228753Smm */
64228753Smm#define UNDEFINED_DIFFERENCE_OK
65228753Smm
66228753Smm/* foo-. gets turned into PC relative relocs */
67228753Smm#define DIFF_EXPR_OK
68228753Smm
69228753Smm/* We don't need to handle .word strangely.  */
70228753Smm#define WORKING_DOT_WORD
71228753Smm
72228753Smm#define md_number_to_chars           number_to_chars_bigendian
73228753Smm
74228753Smm#define NOP_OPCODE 0x07
75228753Smm
76228753Smm/* call md_pcrel_from_section, not md_pcrel_from */
77228753Smm#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section(FIX, SEC)
78228753Smmextern long md_pcrel_from_section PARAMS ((struct fix *, segT));
79228753Smm
80228753Smm#define md_operand(x)
81228753Smm
82228753Smmextern void s390_md_end PARAMS ((void));
83228753Smm#define md_end() s390_md_end ()
84232153Smm
85232153Smm#define TARGET_USE_CFIPOP 1
86232153Smm
87232153Smm#define tc_cfi_frame_initial_instructions s390_cfi_frame_initial_instructions
88232153Smmextern void s390_cfi_frame_initial_instructions PARAMS ((void));
89232153Smm
90232153Smm#define tc_regname_to_dw2regnum tc_s390_regname_to_dw2regnum
91232153Smmextern int tc_s390_regname_to_dw2regnum PARAMS ((char *regname));
92232153Smm
93232153Smmextern int s390_cie_data_alignment;
94232153Smm
95232153Smm#define DWARF2_LINE_MIN_INSN_LENGTH     1
96232153Smm#define DWARF2_DEFAULT_RETURN_COLUMN    14
97232153Smm#define DWARF2_CIE_DATA_ALIGNMENT       s390_cie_data_alignment
98228753Smm