Add x86 AVX XML files.
2010-04-07 H.J. Lu <hongjiu.lu@intel.com> * config/djgpp/fnchange.lst: Add x86 AVX XML files. * features/Makefile (WHICH): Add i386/i386-avx, i386/i386-avx-linux, i386/x86-64-avx and i386/x86-64-avx-linux. (i386/i386-avx-expedite): New. (i386/i386-avx-linux-expedite): Likewise. (i386/x86-64-avx-expedite):Likewise. (i386/x86-64-avx-linux-expedite): Likewise. ($(outdir)/i386/i386-avx.dat): New dependency. ($(outdir)/i386/i386-avx-linux.dat): Likewise. ($(outdir)/i386/x86-avx-64.dat): Likewise. ($(outdir)/i386/x86-64-avx-linux.dat): Likewise. * features/i386/32bit-avx.xml: New. * features/i386/64bit-avx.xml: Likewise. * features/i386/i386-avx-linux.c: Likewise. * features/i386/i386-avx-linux.xml: Likewise. * features/i386/i386-avx.c: Likewise. * features/i386/i386-avx.xml: Likewise. * features/i386/x86-64-avx-linux.c: Likewise. * features/i386/x86-64-avx-linux.xml: Likewise. * features/i386/x86-64-avx.c: Likewise. * features/i386/x86-64-avx.xml: Likewise. * regformats/i386/i386-avx-linux.dat: Likewise. * regformats/i386/i386-avx.dat: Likewise. * regformats/i386/x86-64-avx-linux.dat: Likewise. * regformats/i386/x86-64-avx.dat: Likewise.
This commit is contained in:
parent
05159abe96
commit
98adf0f383
17 changed files with 1050 additions and 0 deletions
|
@ -1,3 +1,33 @@
|
|||
2010-04-07 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* config/djgpp/fnchange.lst: Add x86 AVX XML files.
|
||||
|
||||
* features/Makefile (WHICH): Add i386/i386-avx,
|
||||
i386/i386-avx-linux, i386/x86-64-avx and i386/x86-64-avx-linux.
|
||||
(i386/i386-avx-expedite): New.
|
||||
(i386/i386-avx-linux-expedite): Likewise.
|
||||
(i386/x86-64-avx-expedite):Likewise.
|
||||
(i386/x86-64-avx-linux-expedite): Likewise.
|
||||
($(outdir)/i386/i386-avx.dat): New dependency.
|
||||
($(outdir)/i386/i386-avx-linux.dat): Likewise.
|
||||
($(outdir)/i386/x86-avx-64.dat): Likewise.
|
||||
($(outdir)/i386/x86-64-avx-linux.dat): Likewise.
|
||||
|
||||
* features/i386/32bit-avx.xml: New.
|
||||
* features/i386/64bit-avx.xml: Likewise.
|
||||
* features/i386/i386-avx-linux.c: Likewise.
|
||||
* features/i386/i386-avx-linux.xml: Likewise.
|
||||
* features/i386/i386-avx.c: Likewise.
|
||||
* features/i386/i386-avx.xml: Likewise.
|
||||
* features/i386/x86-64-avx-linux.c: Likewise.
|
||||
* features/i386/x86-64-avx-linux.xml: Likewise.
|
||||
* features/i386/x86-64-avx.c: Likewise.
|
||||
* features/i386/x86-64-avx.xml: Likewise.
|
||||
* regformats/i386/i386-avx-linux.dat: Likewise.
|
||||
* regformats/i386/i386-avx.dat: Likewise.
|
||||
* regformats/i386/x86-64-avx-linux.dat: Likewise.
|
||||
* regformats/i386/x86-64-avx.dat: Likewise.
|
||||
|
||||
2010-04-07 Doug Evans <dje@google.com>
|
||||
|
||||
* top.c (source_file_name): Make const char *.
|
||||
|
|
|
@ -228,6 +228,14 @@
|
|||
@V@/gdb/features/rs6000/powerpc-vsx64l.xml @V@/gdb/features/rs6000/ppc-v64l.xml
|
||||
@V@/gdb/features/rs6000/powerpc-cell32l.xml @V@/gdb/features/rs6000/ppc-c32l.xml
|
||||
@V@/gdb/features/rs6000/powerpc-cell64l.xml @V@/gdb/features/rs6000/ppc-c64l.xml
|
||||
@V@/gdb/features/i386/amd64-avx-linux.c @V@/gdb/features/i386/a64-al.c
|
||||
@V@/gdb/features/i386/amd64-avx.c @V@/gdb/features/i386/a64-a.c
|
||||
@V@/gdb/features/i386/amd64-avx-linux.xml @V@/gdb/features/i386/a64-al.xml
|
||||
@V@/gdb/features/i386/amd64-avx.xml @V@/gdb/features/i386/a64-a.xml
|
||||
@V@/gdb/features/i386/i386-avx-linux.c @V@/features/i386/i32-al.c
|
||||
@V@/gdb/features/i386/i386-avx.c @V@/gdb/features/i386/i32-a.c
|
||||
@V@/gdb/features/i386/i386-avx-linux.xml @V@/gdb/features/i386/i32-al.xml
|
||||
@V@/gdb/features/i386/i386-avx.xml @V@/gdb/features/i386/i32-a.xml
|
||||
@V@/gdb/f-exp.tab.c @V@/gdb/f-exp_tab.c
|
||||
@V@/gdb/gdbserver/linux-cris-low.c @V@/gdb/gdbserver/lx-cris.c
|
||||
@V@/gdb/gdbserver/linux-crisv32-low.c @V@/gdb/gdbserver/lx-cris32.c
|
||||
|
|
|
@ -33,6 +33,8 @@
|
|||
WHICH = arm-with-iwmmxt arm-with-vfpv2 arm-with-vfpv3 arm-with-neon \
|
||||
i386/i386 i386/i386-linux \
|
||||
i386/amd64 i386/amd64-linux \
|
||||
i386/i386-avx i386/i386-avx-linux \
|
||||
i386/amd64-avx i386/amd64-avx-linux \
|
||||
mips-linux mips64-linux \
|
||||
rs6000/powerpc-32l rs6000/powerpc-altivec32l rs6000/powerpc-e500l \
|
||||
rs6000/powerpc-64l rs6000/powerpc-altivec64l rs6000/powerpc-vsx32l \
|
||||
|
@ -45,6 +47,10 @@ i386/i386-expedite = ebp,esp,eip
|
|||
i386/i386-linux-expedite = ebp,esp,eip
|
||||
i386/amd64-expedite = rbp,rsp,rip
|
||||
i386/amd64-linux-expedite = rbp,rsp,rip
|
||||
i386/i386-avx-expedite = ebp,esp,eip
|
||||
i386/i386-avx-linux-expedite = ebp,esp,eip
|
||||
i386/amd64-avx-expedite = rbp,rsp,rip
|
||||
i386/amd64-avx-linux-expedite = rbp,rsp,rip
|
||||
mips-expedite = r29,pc
|
||||
mips64-expedite = r29,pc
|
||||
powerpc-expedite = r1,pc
|
||||
|
@ -90,3 +96,9 @@ $(outdir)/i386/i386-linux.dat: i386/32bit-core.xml i386/32bit-sse.xml \
|
|||
$(outdir)/i386/amd64.dat: i386/64bit-core.xml i386/64bit-sse.xml
|
||||
$(outdir)/i386/amd64-linux.dat: i386/64bit-core.xml i386/64bit-sse.xml \
|
||||
i386/64bit-linux.xml
|
||||
$(outdir)/i386/i386-avx.dat: i386/32bit-core.xml i386/32bit-avx.xml
|
||||
$(outdir)/i386/i386-avx-linux.dat: i386/32bit-core.xml i386/32bit-avx.xml \
|
||||
i386/32bit-linux.xml
|
||||
$(outdir)/i386/amd64-avx.dat: i386/64bit-core.xml i386/64bit-avx.xml
|
||||
$(outdir)/i386/amd64-avx-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \
|
||||
i386/64bit-linux.xml
|
||||
|
|
18
gdb/features/i386/32bit-avx.xml
Normal file
18
gdb/features/i386/32bit-avx.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
|
||||
<feature name="org.gnu.gdb.i386.avx">
|
||||
<reg name="ymm0h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm1h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm2h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm3h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm4h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm5h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm6h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm7h" bitsize="128" type="uint128"/>
|
||||
</feature>
|
26
gdb/features/i386/64bit-avx.xml
Normal file
26
gdb/features/i386/64bit-avx.xml
Normal file
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
|
||||
<feature name="org.gnu.gdb.i386.avx">
|
||||
<reg name="ymm0h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm1h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm2h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm3h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm4h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm5h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm6h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm7h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm8h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm9h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm10h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm11h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm12h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm13h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm14h" bitsize="128" type="uint128"/>
|
||||
<reg name="ymm15h" bitsize="128" type="uint128"/>
|
||||
</feature>
|
171
gdb/features/i386/amd64-avx-linux.c
Normal file
171
gdb/features/i386/amd64-avx-linux.c
Normal file
|
@ -0,0 +1,171 @@
|
|||
/* THIS FILE IS GENERATED. Original: amd64-avx-linux.xml */
|
||||
|
||||
#include "defs.h"
|
||||
#include "osabi.h"
|
||||
#include "target-descriptions.h"
|
||||
|
||||
struct target_desc *tdesc_amd64_avx_linux;
|
||||
static void
|
||||
initialize_tdesc_amd64_avx_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type, *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
field_type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (field_type, 0, "CF");
|
||||
tdesc_add_flag (field_type, 1, "");
|
||||
tdesc_add_flag (field_type, 2, "PF");
|
||||
tdesc_add_flag (field_type, 4, "AF");
|
||||
tdesc_add_flag (field_type, 6, "ZF");
|
||||
tdesc_add_flag (field_type, 7, "SF");
|
||||
tdesc_add_flag (field_type, 8, "TF");
|
||||
tdesc_add_flag (field_type, 9, "IF");
|
||||
tdesc_add_flag (field_type, 10, "DF");
|
||||
tdesc_add_flag (field_type, 11, "OF");
|
||||
tdesc_add_flag (field_type, 14, "NT");
|
||||
tdesc_add_flag (field_type, 16, "RF");
|
||||
tdesc_add_flag (field_type, 17, "VM");
|
||||
tdesc_add_flag (field_type, 18, "AC");
|
||||
tdesc_add_flag (field_type, 19, "VIF");
|
||||
tdesc_add_flag (field_type, 20, "VIP");
|
||||
tdesc_add_flag (field_type, 21, "ID");
|
||||
|
||||
tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
|
||||
tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
|
||||
tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
|
||||
tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
|
||||
tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
field_type = tdesc_named_type (feature, "ieee_double");
|
||||
tdesc_create_vector (feature, "v2d", field_type, 2);
|
||||
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
field_type = tdesc_named_type (feature, "int16");
|
||||
tdesc_create_vector (feature, "v8i16", field_type, 8);
|
||||
|
||||
field_type = tdesc_named_type (feature, "int32");
|
||||
tdesc_create_vector (feature, "v4i32", field_type, 4);
|
||||
|
||||
field_type = tdesc_named_type (feature, "int64");
|
||||
tdesc_create_vector (feature, "v2i64", field_type, 2);
|
||||
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "v4f");
|
||||
tdesc_add_field (type, "v4_float", field_type);
|
||||
field_type = tdesc_named_type (feature, "v2d");
|
||||
tdesc_add_field (type, "v2_double", field_type);
|
||||
field_type = tdesc_named_type (feature, "v16i8");
|
||||
tdesc_add_field (type, "v16_int8", field_type);
|
||||
field_type = tdesc_named_type (feature, "v8i16");
|
||||
tdesc_add_field (type, "v8_int16", field_type);
|
||||
field_type = tdesc_named_type (feature, "v4i32");
|
||||
tdesc_add_field (type, "v4_int32", field_type);
|
||||
field_type = tdesc_named_type (feature, "v2i64");
|
||||
tdesc_add_field (type, "v2_int64", field_type);
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
||||
field_type = tdesc_create_flags (feature, "i386_mxcsr", 4);
|
||||
tdesc_add_flag (field_type, 0, "IE");
|
||||
tdesc_add_flag (field_type, 1, "DE");
|
||||
tdesc_add_flag (field_type, 2, "ZE");
|
||||
tdesc_add_flag (field_type, 3, "OE");
|
||||
tdesc_add_flag (field_type, 4, "UE");
|
||||
tdesc_add_flag (field_type, 5, "PE");
|
||||
tdesc_add_flag (field_type, 6, "DAZ");
|
||||
tdesc_add_flag (field_type, 7, "IM");
|
||||
tdesc_add_flag (field_type, 8, "DM");
|
||||
tdesc_add_flag (field_type, 9, "ZM");
|
||||
tdesc_add_flag (field_type, 10, "OM");
|
||||
tdesc_add_flag (field_type, 11, "UM");
|
||||
tdesc_add_flag (field_type, 12, "PM");
|
||||
tdesc_add_flag (field_type, 15, "FZ");
|
||||
|
||||
tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
|
||||
tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
|
||||
tdesc_create_reg (feature, "ymm0h", 58, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm1h", 59, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm2h", 60, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm3h", 61, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm4h", 62, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm5h", 63, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm6h", 64, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm7h", 65, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm8h", 66, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm9h", 67, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm10h", 68, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm11h", 69, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm12h", 70, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm13h", 71, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm14h", 72, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm15h", 73, 1, NULL, 128, "uint128");
|
||||
|
||||
tdesc_amd64_avx_linux = result;
|
||||
}
|
18
gdb/features/i386/amd64-avx-linux.xml
Normal file
18
gdb/features/i386/amd64-avx-linux.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!-- AMD64 with AVX - Includes Linux-only special "register". -->
|
||||
|
||||
<!DOCTYPE target SYSTEM "gdb-target.dtd">
|
||||
<target>
|
||||
<architecture>i386:x86-64</architecture>
|
||||
<osabi>GNU/Linux</osabi>
|
||||
<xi:include href="64bit-core.xml"/>
|
||||
<xi:include href="64bit-sse.xml"/>
|
||||
<xi:include href="64bit-linux.xml"/>
|
||||
<xi:include href="64bit-avx.xml"/>
|
||||
</target>
|
166
gdb/features/i386/amd64-avx.c
Normal file
166
gdb/features/i386/amd64-avx.c
Normal file
|
@ -0,0 +1,166 @@
|
|||
/* THIS FILE IS GENERATED. Original: amd64-avx.xml */
|
||||
|
||||
#include "defs.h"
|
||||
#include "osabi.h"
|
||||
#include "target-descriptions.h"
|
||||
|
||||
struct target_desc *tdesc_amd64_avx;
|
||||
static void
|
||||
initialize_tdesc_amd64_avx (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type, *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
field_type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (field_type, 0, "CF");
|
||||
tdesc_add_flag (field_type, 1, "");
|
||||
tdesc_add_flag (field_type, 2, "PF");
|
||||
tdesc_add_flag (field_type, 4, "AF");
|
||||
tdesc_add_flag (field_type, 6, "ZF");
|
||||
tdesc_add_flag (field_type, 7, "SF");
|
||||
tdesc_add_flag (field_type, 8, "TF");
|
||||
tdesc_add_flag (field_type, 9, "IF");
|
||||
tdesc_add_flag (field_type, 10, "DF");
|
||||
tdesc_add_flag (field_type, 11, "OF");
|
||||
tdesc_add_flag (field_type, 14, "NT");
|
||||
tdesc_add_flag (field_type, 16, "RF");
|
||||
tdesc_add_flag (field_type, 17, "VM");
|
||||
tdesc_add_flag (field_type, 18, "AC");
|
||||
tdesc_add_flag (field_type, 19, "VIF");
|
||||
tdesc_add_flag (field_type, 20, "VIP");
|
||||
tdesc_add_flag (field_type, 21, "ID");
|
||||
|
||||
tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
|
||||
tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
|
||||
tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
|
||||
tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
|
||||
tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
|
||||
tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
field_type = tdesc_named_type (feature, "ieee_double");
|
||||
tdesc_create_vector (feature, "v2d", field_type, 2);
|
||||
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
field_type = tdesc_named_type (feature, "int16");
|
||||
tdesc_create_vector (feature, "v8i16", field_type, 8);
|
||||
|
||||
field_type = tdesc_named_type (feature, "int32");
|
||||
tdesc_create_vector (feature, "v4i32", field_type, 4);
|
||||
|
||||
field_type = tdesc_named_type (feature, "int64");
|
||||
tdesc_create_vector (feature, "v2i64", field_type, 2);
|
||||
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "v4f");
|
||||
tdesc_add_field (type, "v4_float", field_type);
|
||||
field_type = tdesc_named_type (feature, "v2d");
|
||||
tdesc_add_field (type, "v2_double", field_type);
|
||||
field_type = tdesc_named_type (feature, "v16i8");
|
||||
tdesc_add_field (type, "v16_int8", field_type);
|
||||
field_type = tdesc_named_type (feature, "v8i16");
|
||||
tdesc_add_field (type, "v8_int16", field_type);
|
||||
field_type = tdesc_named_type (feature, "v4i32");
|
||||
tdesc_add_field (type, "v4_int32", field_type);
|
||||
field_type = tdesc_named_type (feature, "v2i64");
|
||||
tdesc_add_field (type, "v2_int64", field_type);
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
||||
field_type = tdesc_create_flags (feature, "i386_mxcsr", 4);
|
||||
tdesc_add_flag (field_type, 0, "IE");
|
||||
tdesc_add_flag (field_type, 1, "DE");
|
||||
tdesc_add_flag (field_type, 2, "ZE");
|
||||
tdesc_add_flag (field_type, 3, "OE");
|
||||
tdesc_add_flag (field_type, 4, "UE");
|
||||
tdesc_add_flag (field_type, 5, "PE");
|
||||
tdesc_add_flag (field_type, 6, "DAZ");
|
||||
tdesc_add_flag (field_type, 7, "IM");
|
||||
tdesc_add_flag (field_type, 8, "DM");
|
||||
tdesc_add_flag (field_type, 9, "ZM");
|
||||
tdesc_add_flag (field_type, 10, "OM");
|
||||
tdesc_add_flag (field_type, 11, "UM");
|
||||
tdesc_add_flag (field_type, 12, "PM");
|
||||
tdesc_add_flag (field_type, 15, "FZ");
|
||||
|
||||
tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
|
||||
tdesc_create_reg (feature, "ymm0h", 57, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm1h", 58, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm2h", 59, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm3h", 60, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm4h", 61, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm5h", 62, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm6h", 63, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm7h", 64, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm8h", 65, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm9h", 66, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm10h", 67, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm11h", 68, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm12h", 69, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm13h", 70, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm14h", 71, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm15h", 72, 1, NULL, 128, "uint128");
|
||||
|
||||
tdesc_amd64_avx = result;
|
||||
}
|
16
gdb/features/i386/amd64-avx.xml
Normal file
16
gdb/features/i386/amd64-avx.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!-- AMD64 with AVX -->
|
||||
|
||||
<!DOCTYPE target SYSTEM "gdb-target.dtd">
|
||||
<target>
|
||||
<architecture>i386:x86-64</architecture>
|
||||
<xi:include href="64bit-core.xml"/>
|
||||
<xi:include href="64bit-sse.xml"/>
|
||||
<xi:include href="64bit-avx.xml"/>
|
||||
</target>
|
147
gdb/features/i386/i386-avx-linux.c
Normal file
147
gdb/features/i386/i386-avx-linux.c
Normal file
|
@ -0,0 +1,147 @@
|
|||
/* THIS FILE IS GENERATED. Original: i386-avx-linux.xml */
|
||||
|
||||
#include "defs.h"
|
||||
#include "osabi.h"
|
||||
#include "target-descriptions.h"
|
||||
|
||||
struct target_desc *tdesc_i386_avx_linux;
|
||||
static void
|
||||
initialize_tdesc_i386_avx_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type, *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
field_type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (field_type, 0, "CF");
|
||||
tdesc_add_flag (field_type, 1, "");
|
||||
tdesc_add_flag (field_type, 2, "PF");
|
||||
tdesc_add_flag (field_type, 4, "AF");
|
||||
tdesc_add_flag (field_type, 6, "ZF");
|
||||
tdesc_add_flag (field_type, 7, "SF");
|
||||
tdesc_add_flag (field_type, 8, "TF");
|
||||
tdesc_add_flag (field_type, 9, "IF");
|
||||
tdesc_add_flag (field_type, 10, "DF");
|
||||
tdesc_add_flag (field_type, 11, "OF");
|
||||
tdesc_add_flag (field_type, 14, "NT");
|
||||
tdesc_add_flag (field_type, 16, "RF");
|
||||
tdesc_add_flag (field_type, 17, "VM");
|
||||
tdesc_add_flag (field_type, 18, "AC");
|
||||
tdesc_add_flag (field_type, 19, "VIF");
|
||||
tdesc_add_flag (field_type, 20, "VIP");
|
||||
tdesc_add_flag (field_type, 21, "ID");
|
||||
|
||||
tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
|
||||
tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
|
||||
tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
|
||||
tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
|
||||
tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
field_type = tdesc_named_type (feature, "ieee_double");
|
||||
tdesc_create_vector (feature, "v2d", field_type, 2);
|
||||
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
field_type = tdesc_named_type (feature, "int16");
|
||||
tdesc_create_vector (feature, "v8i16", field_type, 8);
|
||||
|
||||
field_type = tdesc_named_type (feature, "int32");
|
||||
tdesc_create_vector (feature, "v4i32", field_type, 4);
|
||||
|
||||
field_type = tdesc_named_type (feature, "int64");
|
||||
tdesc_create_vector (feature, "v2i64", field_type, 2);
|
||||
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "v4f");
|
||||
tdesc_add_field (type, "v4_float", field_type);
|
||||
field_type = tdesc_named_type (feature, "v2d");
|
||||
tdesc_add_field (type, "v2_double", field_type);
|
||||
field_type = tdesc_named_type (feature, "v16i8");
|
||||
tdesc_add_field (type, "v16_int8", field_type);
|
||||
field_type = tdesc_named_type (feature, "v8i16");
|
||||
tdesc_add_field (type, "v8_int16", field_type);
|
||||
field_type = tdesc_named_type (feature, "v4i32");
|
||||
tdesc_add_field (type, "v4_int32", field_type);
|
||||
field_type = tdesc_named_type (feature, "v2i64");
|
||||
tdesc_add_field (type, "v2_int64", field_type);
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
||||
field_type = tdesc_create_flags (feature, "i386_mxcsr", 4);
|
||||
tdesc_add_flag (field_type, 0, "IE");
|
||||
tdesc_add_flag (field_type, 1, "DE");
|
||||
tdesc_add_flag (field_type, 2, "ZE");
|
||||
tdesc_add_flag (field_type, 3, "OE");
|
||||
tdesc_add_flag (field_type, 4, "UE");
|
||||
tdesc_add_flag (field_type, 5, "PE");
|
||||
tdesc_add_flag (field_type, 6, "DAZ");
|
||||
tdesc_add_flag (field_type, 7, "IM");
|
||||
tdesc_add_flag (field_type, 8, "DM");
|
||||
tdesc_add_flag (field_type, 9, "ZM");
|
||||
tdesc_add_flag (field_type, 10, "OM");
|
||||
tdesc_add_flag (field_type, 11, "UM");
|
||||
tdesc_add_flag (field_type, 12, "PM");
|
||||
tdesc_add_flag (field_type, 15, "FZ");
|
||||
|
||||
tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
|
||||
tdesc_create_reg (feature, "orig_eax", 41, 1, NULL, 32, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
|
||||
tdesc_create_reg (feature, "ymm0h", 42, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm1h", 43, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm2h", 44, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm3h", 45, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm4h", 46, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm5h", 47, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm6h", 48, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm7h", 49, 1, NULL, 128, "uint128");
|
||||
|
||||
tdesc_i386_avx_linux = result;
|
||||
}
|
18
gdb/features/i386/i386-avx-linux.xml
Normal file
18
gdb/features/i386/i386-avx-linux.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!-- I386 with AVX- Includes Linux-only special "register". -->
|
||||
|
||||
<!DOCTYPE target SYSTEM "gdb-target.dtd">
|
||||
<target>
|
||||
<architecture>i386</architecture>
|
||||
<osabi>GNU/Linux</osabi>
|
||||
<xi:include href="32bit-core.xml"/>
|
||||
<xi:include href="32bit-sse.xml"/>
|
||||
<xi:include href="32bit-linux.xml"/>
|
||||
<xi:include href="32bit-avx.xml"/>
|
||||
</target>
|
142
gdb/features/i386/i386-avx.c
Normal file
142
gdb/features/i386/i386-avx.c
Normal file
|
@ -0,0 +1,142 @@
|
|||
/* THIS FILE IS GENERATED. Original: i386-avx.xml */
|
||||
|
||||
#include "defs.h"
|
||||
#include "osabi.h"
|
||||
#include "target-descriptions.h"
|
||||
|
||||
struct target_desc *tdesc_i386_avx;
|
||||
static void
|
||||
initialize_tdesc_i386_avx (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type, *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
field_type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (field_type, 0, "CF");
|
||||
tdesc_add_flag (field_type, 1, "");
|
||||
tdesc_add_flag (field_type, 2, "PF");
|
||||
tdesc_add_flag (field_type, 4, "AF");
|
||||
tdesc_add_flag (field_type, 6, "ZF");
|
||||
tdesc_add_flag (field_type, 7, "SF");
|
||||
tdesc_add_flag (field_type, 8, "TF");
|
||||
tdesc_add_flag (field_type, 9, "IF");
|
||||
tdesc_add_flag (field_type, 10, "DF");
|
||||
tdesc_add_flag (field_type, 11, "OF");
|
||||
tdesc_add_flag (field_type, 14, "NT");
|
||||
tdesc_add_flag (field_type, 16, "RF");
|
||||
tdesc_add_flag (field_type, 17, "VM");
|
||||
tdesc_add_flag (field_type, 18, "AC");
|
||||
tdesc_add_flag (field_type, 19, "VIF");
|
||||
tdesc_add_flag (field_type, 20, "VIP");
|
||||
tdesc_add_flag (field_type, 21, "ID");
|
||||
|
||||
tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
|
||||
tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
|
||||
tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
|
||||
tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
|
||||
tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
|
||||
tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
|
||||
tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
|
||||
tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
field_type = tdesc_named_type (feature, "ieee_double");
|
||||
tdesc_create_vector (feature, "v2d", field_type, 2);
|
||||
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
field_type = tdesc_named_type (feature, "int16");
|
||||
tdesc_create_vector (feature, "v8i16", field_type, 8);
|
||||
|
||||
field_type = tdesc_named_type (feature, "int32");
|
||||
tdesc_create_vector (feature, "v4i32", field_type, 4);
|
||||
|
||||
field_type = tdesc_named_type (feature, "int64");
|
||||
tdesc_create_vector (feature, "v2i64", field_type, 2);
|
||||
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "v4f");
|
||||
tdesc_add_field (type, "v4_float", field_type);
|
||||
field_type = tdesc_named_type (feature, "v2d");
|
||||
tdesc_add_field (type, "v2_double", field_type);
|
||||
field_type = tdesc_named_type (feature, "v16i8");
|
||||
tdesc_add_field (type, "v16_int8", field_type);
|
||||
field_type = tdesc_named_type (feature, "v8i16");
|
||||
tdesc_add_field (type, "v8_int16", field_type);
|
||||
field_type = tdesc_named_type (feature, "v4i32");
|
||||
tdesc_add_field (type, "v4_int32", field_type);
|
||||
field_type = tdesc_named_type (feature, "v2i64");
|
||||
tdesc_add_field (type, "v2_int64", field_type);
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
||||
field_type = tdesc_create_flags (feature, "i386_mxcsr", 4);
|
||||
tdesc_add_flag (field_type, 0, "IE");
|
||||
tdesc_add_flag (field_type, 1, "DE");
|
||||
tdesc_add_flag (field_type, 2, "ZE");
|
||||
tdesc_add_flag (field_type, 3, "OE");
|
||||
tdesc_add_flag (field_type, 4, "UE");
|
||||
tdesc_add_flag (field_type, 5, "PE");
|
||||
tdesc_add_flag (field_type, 6, "DAZ");
|
||||
tdesc_add_flag (field_type, 7, "IM");
|
||||
tdesc_add_flag (field_type, 8, "DM");
|
||||
tdesc_add_flag (field_type, 9, "ZM");
|
||||
tdesc_add_flag (field_type, 10, "OM");
|
||||
tdesc_add_flag (field_type, 11, "UM");
|
||||
tdesc_add_flag (field_type, 12, "PM");
|
||||
tdesc_add_flag (field_type, 15, "FZ");
|
||||
|
||||
tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
|
||||
tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
|
||||
tdesc_create_reg (feature, "ymm0h", 41, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm1h", 42, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm2h", 43, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm3h", 44, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm4h", 45, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm5h", 46, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm6h", 47, 1, NULL, 128, "uint128");
|
||||
tdesc_create_reg (feature, "ymm7h", 48, 1, NULL, 128, "uint128");
|
||||
|
||||
tdesc_i386_avx = result;
|
||||
}
|
16
gdb/features/i386/i386-avx.xml
Normal file
16
gdb/features/i386/i386-avx.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!-- I386 with AVX -->
|
||||
|
||||
<!DOCTYPE target SYSTEM "gdb-target.dtd">
|
||||
<target>
|
||||
<architecture>i386</architecture>
|
||||
<xi:include href="32bit-core.xml"/>
|
||||
<xi:include href="32bit-sse.xml"/>
|
||||
<xi:include href="32bit-avx.xml"/>
|
||||
</target>
|
78
gdb/regformats/i386/amd64-avx-linux.dat
Normal file
78
gdb/regformats/i386/amd64-avx-linux.dat
Normal file
|
@ -0,0 +1,78 @@
|
|||
# DO NOT EDIT: generated from i386/amd64-avx-linux.xml
|
||||
name:amd64_avx_linux
|
||||
xmltarget:amd64-avx-linux.xml
|
||||
expedite:rbp,rsp,rip
|
||||
64:rax
|
||||
64:rbx
|
||||
64:rcx
|
||||
64:rdx
|
||||
64:rsi
|
||||
64:rdi
|
||||
64:rbp
|
||||
64:rsp
|
||||
64:r8
|
||||
64:r9
|
||||
64:r10
|
||||
64:r11
|
||||
64:r12
|
||||
64:r13
|
||||
64:r14
|
||||
64:r15
|
||||
64:rip
|
||||
32:eflags
|
||||
32:cs
|
||||
32:ss
|
||||
32:ds
|
||||
32:es
|
||||
32:fs
|
||||
32:gs
|
||||
80:st0
|
||||
80:st1
|
||||
80:st2
|
||||
80:st3
|
||||
80:st4
|
||||
80:st5
|
||||
80:st6
|
||||
80:st7
|
||||
32:fctrl
|
||||
32:fstat
|
||||
32:ftag
|
||||
32:fiseg
|
||||
32:fioff
|
||||
32:foseg
|
||||
32:fooff
|
||||
32:fop
|
||||
128:xmm0
|
||||
128:xmm1
|
||||
128:xmm2
|
||||
128:xmm3
|
||||
128:xmm4
|
||||
128:xmm5
|
||||
128:xmm6
|
||||
128:xmm7
|
||||
128:xmm8
|
||||
128:xmm9
|
||||
128:xmm10
|
||||
128:xmm11
|
||||
128:xmm12
|
||||
128:xmm13
|
||||
128:xmm14
|
||||
128:xmm15
|
||||
32:mxcsr
|
||||
64:orig_rax
|
||||
128:ymm0h
|
||||
128:ymm1h
|
||||
128:ymm2h
|
||||
128:ymm3h
|
||||
128:ymm4h
|
||||
128:ymm5h
|
||||
128:ymm6h
|
||||
128:ymm7h
|
||||
128:ymm8h
|
||||
128:ymm9h
|
||||
128:ymm10h
|
||||
128:ymm11h
|
||||
128:ymm12h
|
||||
128:ymm13h
|
||||
128:ymm14h
|
||||
128:ymm15h
|
77
gdb/regformats/i386/amd64-avx.dat
Normal file
77
gdb/regformats/i386/amd64-avx.dat
Normal file
|
@ -0,0 +1,77 @@
|
|||
# DO NOT EDIT: generated from i386/amd64-avx.xml
|
||||
name:amd64_avx
|
||||
xmltarget:amd64-avx.xml
|
||||
expedite:rbp,rsp,rip
|
||||
64:rax
|
||||
64:rbx
|
||||
64:rcx
|
||||
64:rdx
|
||||
64:rsi
|
||||
64:rdi
|
||||
64:rbp
|
||||
64:rsp
|
||||
64:r8
|
||||
64:r9
|
||||
64:r10
|
||||
64:r11
|
||||
64:r12
|
||||
64:r13
|
||||
64:r14
|
||||
64:r15
|
||||
64:rip
|
||||
32:eflags
|
||||
32:cs
|
||||
32:ss
|
||||
32:ds
|
||||
32:es
|
||||
32:fs
|
||||
32:gs
|
||||
80:st0
|
||||
80:st1
|
||||
80:st2
|
||||
80:st3
|
||||
80:st4
|
||||
80:st5
|
||||
80:st6
|
||||
80:st7
|
||||
32:fctrl
|
||||
32:fstat
|
||||
32:ftag
|
||||
32:fiseg
|
||||
32:fioff
|
||||
32:foseg
|
||||
32:fooff
|
||||
32:fop
|
||||
128:xmm0
|
||||
128:xmm1
|
||||
128:xmm2
|
||||
128:xmm3
|
||||
128:xmm4
|
||||
128:xmm5
|
||||
128:xmm6
|
||||
128:xmm7
|
||||
128:xmm8
|
||||
128:xmm9
|
||||
128:xmm10
|
||||
128:xmm11
|
||||
128:xmm12
|
||||
128:xmm13
|
||||
128:xmm14
|
||||
128:xmm15
|
||||
32:mxcsr
|
||||
128:ymm0h
|
||||
128:ymm1h
|
||||
128:ymm2h
|
||||
128:ymm3h
|
||||
128:ymm4h
|
||||
128:ymm5h
|
||||
128:ymm6h
|
||||
128:ymm7h
|
||||
128:ymm8h
|
||||
128:ymm9h
|
||||
128:ymm10h
|
||||
128:ymm11h
|
||||
128:ymm12h
|
||||
128:ymm13h
|
||||
128:ymm14h
|
||||
128:ymm15h
|
54
gdb/regformats/i386/i386-avx-linux.dat
Normal file
54
gdb/regformats/i386/i386-avx-linux.dat
Normal file
|
@ -0,0 +1,54 @@
|
|||
# DO NOT EDIT: generated from i386/i386-avx-linux.xml
|
||||
name:i386_avx_linux
|
||||
xmltarget:i386-avx-linux.xml
|
||||
expedite:ebp,esp,eip
|
||||
32:eax
|
||||
32:ecx
|
||||
32:edx
|
||||
32:ebx
|
||||
32:esp
|
||||
32:ebp
|
||||
32:esi
|
||||
32:edi
|
||||
32:eip
|
||||
32:eflags
|
||||
32:cs
|
||||
32:ss
|
||||
32:ds
|
||||
32:es
|
||||
32:fs
|
||||
32:gs
|
||||
80:st0
|
||||
80:st1
|
||||
80:st2
|
||||
80:st3
|
||||
80:st4
|
||||
80:st5
|
||||
80:st6
|
||||
80:st7
|
||||
32:fctrl
|
||||
32:fstat
|
||||
32:ftag
|
||||
32:fiseg
|
||||
32:fioff
|
||||
32:foseg
|
||||
32:fooff
|
||||
32:fop
|
||||
128:xmm0
|
||||
128:xmm1
|
||||
128:xmm2
|
||||
128:xmm3
|
||||
128:xmm4
|
||||
128:xmm5
|
||||
128:xmm6
|
||||
128:xmm7
|
||||
32:mxcsr
|
||||
32:orig_eax
|
||||
128:ymm0h
|
||||
128:ymm1h
|
||||
128:ymm2h
|
||||
128:ymm3h
|
||||
128:ymm4h
|
||||
128:ymm5h
|
||||
128:ymm6h
|
||||
128:ymm7h
|
53
gdb/regformats/i386/i386-avx.dat
Normal file
53
gdb/regformats/i386/i386-avx.dat
Normal file
|
@ -0,0 +1,53 @@
|
|||
# DO NOT EDIT: generated from i386/i386-avx.xml
|
||||
name:i386_avx
|
||||
xmltarget:i386-avx.xml
|
||||
expedite:ebp,esp,eip
|
||||
32:eax
|
||||
32:ecx
|
||||
32:edx
|
||||
32:ebx
|
||||
32:esp
|
||||
32:ebp
|
||||
32:esi
|
||||
32:edi
|
||||
32:eip
|
||||
32:eflags
|
||||
32:cs
|
||||
32:ss
|
||||
32:ds
|
||||
32:es
|
||||
32:fs
|
||||
32:gs
|
||||
80:st0
|
||||
80:st1
|
||||
80:st2
|
||||
80:st3
|
||||
80:st4
|
||||
80:st5
|
||||
80:st6
|
||||
80:st7
|
||||
32:fctrl
|
||||
32:fstat
|
||||
32:ftag
|
||||
32:fiseg
|
||||
32:fioff
|
||||
32:foseg
|
||||
32:fooff
|
||||
32:fop
|
||||
128:xmm0
|
||||
128:xmm1
|
||||
128:xmm2
|
||||
128:xmm3
|
||||
128:xmm4
|
||||
128:xmm5
|
||||
128:xmm6
|
||||
128:xmm7
|
||||
32:mxcsr
|
||||
128:ymm0h
|
||||
128:ymm1h
|
||||
128:ymm2h
|
||||
128:ymm3h
|
||||
128:ymm4h
|
||||
128:ymm5h
|
||||
128:ymm6h
|
||||
128:ymm7h
|
Loading…
Reference in a new issue