Subversion Repositories Kolibri OS

Rev

Rev 5191 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5191 Rev 6324
Line 1... Line 1...
1
/* SPARC ELF support for BFD.
1
/* SPARC ELF support for BFD.
2
   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2008, 2010,
-
 
3
   2011
-
 
4
   Free Software Foundation, Inc.
2
   Copyright (C) 1996-2015 Free Software Foundation, Inc.
5
   By Doug Evans, Cygnus Support, .
3
   By Doug Evans, Cygnus Support, .
Line 6... Line 4...
6
 
4
 
Line 7... Line 5...
7
   This file is part of BFD, the Binary File Descriptor library.
5
   This file is part of BFD, the Binary File Descriptor library.
Line 190... Line 188...
190
/* Object attribute tags.  */
188
/* Object attribute tags.  */
191
enum
189
enum
192
{
190
{
193
  /* 0-3 are generic.  */
191
  /* 0-3 are generic.  */
194
  Tag_GNU_Sparc_HWCAPS = 4,
192
  Tag_GNU_Sparc_HWCAPS = 4,
-
 
193
  Tag_GNU_Sparc_HWCAPS2 = 8
195
};
194
};
Line -... Line 195...
-
 
195
 
196
 
196
/* Generally speaking the ELF_SPARC_HWCAP_* and ELF_SPARC_HWCAP2_*
-
 
197
   values match the AV_SPARC_* and AV2_SPARC_* bits respectively.
-
 
198
 
-
 
199
   However Solaris 11 introduced a backwards-incompatible change
-
 
200
   deprecating the RANDOM, TRANS and ASI_CACHE_SPARING bits in the
-
 
201
   AT_SUNW_CAP_HW1 flags, reusing the bits for the unrelated hwcaps
-
 
202
   FJATHHPC, FJDES and FJAES respectively.  In GNU/Linux we opted to
-
 
203
   keep the old hwcaps in Tag_GNU_Sparc_HWCAPS and allocate bits for
-
 
204
   FJATHHPC, FJDES and JFAES in Tag_GNU_Sparc_HWCAPS2.  */
197
/* These values match the AV_SPARC_* hwcap bits defined under Solaris.  */
205
 
198
#define ELF_SPARC_HWCAP_MUL32	0x00000001 /* umul/umulcc/smul/smulcc insns */
206
#define ELF_SPARC_HWCAP_MUL32	0x00000001 /* umul/umulcc/smul/smulcc insns */
199
#define ELF_SPARC_HWCAP_DIV32	0x00000002 /* udiv/udivcc/sdiv/sdivcc insns */
207
#define ELF_SPARC_HWCAP_DIV32	0x00000002 /* udiv/udivcc/sdiv/sdivcc insns */
200
#define ELF_SPARC_HWCAP_FSMULD	0x00000004 /* 'fsmuld' insn */
208
#define ELF_SPARC_HWCAP_FSMULD	0x00000004 /* 'fsmuld' insn */
201
#define ELF_SPARC_HWCAP_V8PLUS	0x00000008 /* v9 insns available to 32bit */
209
#define ELF_SPARC_HWCAP_V8PLUS	0x00000008 /* v9 insns available to 32bit */
Line 226... Line 234...
226
#define ELF_SPARC_HWCAP_MONT	0x04000000 /* Montgomery Mult/Sqrt */
234
#define ELF_SPARC_HWCAP_MONT	0x04000000 /* Montgomery Mult/Sqrt */
227
#define ELF_SPARC_HWCAP_PAUSE	0x08000000 /* Pause insn */
235
#define ELF_SPARC_HWCAP_PAUSE	0x08000000 /* Pause insn */
228
#define ELF_SPARC_HWCAP_CBCOND	0x10000000 /* Compare and Branch insns */
236
#define ELF_SPARC_HWCAP_CBCOND	0x10000000 /* Compare and Branch insns */
229
#define ELF_SPARC_HWCAP_CRC32C	0x20000000 /* CRC32C insn */
237
#define ELF_SPARC_HWCAP_CRC32C	0x20000000 /* CRC32C insn */
Line -... Line 238...
-
 
238
 
-
 
239
#define ELF_SPARC_HWCAP2_FJATHPLUS 0x00000001 /* Fujitsu Athena+ */
-
 
240
#define ELF_SPARC_HWCAP2_VIS3B     0x00000002 /* Subset of VIS3 present on sparc64 X+ */
-
 
241
#define ELF_SPARC_HWCAP2_ADP       0x00000004 /* Application Data Protection */
-
 
242
#define ELF_SPARC_HWCAP2_SPARC5    0x00000008 /* The 29 new fp and sub instructions */
-
 
243
#define ELF_SPARC_HWCAP2_MWAIT     0x00000010 /* mwait instruction and load/monitor ASIs */
-
 
244
#define ELF_SPARC_HWCAP2_XMPMUL    0x00000020 /* XOR multiple precision multiply */
-
 
245
#define ELF_SPARC_HWCAP2_XMONT     0x00000040 /* XOR Montgomery mult/sqr instructions */
-
 
246
#define ELF_SPARC_HWCAP2_NSEC      \
-
 
247
                                   0x00000080 /* pause insn with support for nsec timings */
-
 
248
#define ELF_SPARC_HWCAP2_FJATHHPC  0x00001000 /* Fujitsu HPC instrs */
-
 
249
#define ELF_SPARC_HWCAP2_FJDES     0x00002000 /* Fujitsu DES instrs */
-
 
250
#define ELF_SPARC_HWCAP2_FJAES     0x00010000 /* Fujitsu AES instrs */
230
 
251