aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2006-09-20 11:35:11 +0000
committerNick Clifton <nickc@redhat.com>2006-09-20 11:35:11 +0000
commit99ad839030c1177eb409a99320fa7e60226f0db3 (patch)
tree31841958e04c69ceb1aeafcf7cdef5e721d23829 /gas
parenta8bbe5b03e6b16a41a69e570061e34014d30431a (diff)
downloadgdb-99ad839030c1177eb409a99320fa7e60226f0db3.zip
gdb-99ad839030c1177eb409a99320fa7e60226f0db3.tar.gz
gdb-99ad839030c1177eb409a99320fa7e60226f0db3.tar.bz2
Add x86_64-mingw64 target
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog14
-rw-r--r--gas/NEWS2
-rw-r--r--gas/config/obj-coff.h14
-rw-r--r--gas/config/tc-i386.c33
-rw-r--r--gas/config/te-pep.h10
-rwxr-xr-xgas/configure24
-rw-r--r--gas/configure.in14
-rw-r--r--gas/configure.tgt3
-rw-r--r--gas/testsuite/ChangeLog15
-rw-r--r--gas/testsuite/gas/all/gas.exp1
-rw-r--r--gas/testsuite/gas/i386/i386.exp2
-rw-r--r--gas/testsuite/gas/i386/immed64.d1
-rw-r--r--gas/testsuite/gas/i386/rex.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-addr32.d3
-rw-r--r--gas/testsuite/gas/i386/x86-64-branch.d3
-rw-r--r--gas/testsuite/gas/i386/x86-64-crx-suffix.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-crx.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-drx-suffix.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-drx.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-opcode.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-pcrel.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-rip.d3
-rw-r--r--gas/testsuite/gas/i386/x86-64-stack-intel.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-stack-suffix.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-stack.d2
-rw-r--r--gas/testsuite/gas/i386/x86_64.d2
26 files changed, 142 insertions, 22 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 1b939ed..c9b5e90 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,17 @@
+2006-09-20 Kai Tietz <Kai.Tietz@onevision.com>
+
+ * configure.in: Add new target x86_64-pc-mingw64.
+ * configure: Regenerate.
+ * configure.tgt: Add new target x86_64-pc-mingw64.
+ * config/obj-coff.h: Add handling for TE_PEP target specific code and definitions.
+ * config/tc-i386.c: Add new targets.
+ (md_parse_option): Add targets to OPTION_64.
+ (x86_64_target_format): Add new method for setup proper default target cpu mode.
+ * config/te-pep.h: Add new target definition header.
+ (TE_PEP): New macro: Identifies new target architecture.
+ (COFF_WITH_pex64): Set proper includes in bfd.
+ * NEWS: Mention new target.
+
2006-09-18 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin-parse.y (binary): Change sub of const to add of negated
diff --git a/gas/NEWS b/gas/NEWS
index 23ae48d..1493808 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -1,4 +1,6 @@
-*- text -*-
+* Add support for x86_64 PE+ target.
+
* Add support for Score target.
* Support for the Infineon XC16X has been added by KPIT Cummins Infosystems.
diff --git a/gas/config/obj-coff.h b/gas/config/obj-coff.h
index 8d10b4d..d2b2125 100644
--- a/gas/config/obj-coff.h
+++ b/gas/config/obj-coff.h
@@ -55,16 +55,30 @@
#endif
#ifdef TC_I386
+#ifndef TE_PEP
+#include "coff/x86_64.h"
+#else
#include "coff/i386.h"
+#endif
#ifdef TE_PE
+#ifdef TE_PEP
+extern const char * x86_64_target_format (void);
+#define TARGET_FORMAT x86_64_target_format ()
+#define COFF_TARGET_FORMAT "pe-x86-64"
+#else
#define TARGET_FORMAT "pe-i386"
#endif
+#endif
#ifndef TARGET_FORMAT
+#ifdef TE_PEP
+#define TARGET_FORMAT "coff-x86-64"
+#else
#define TARGET_FORMAT "coff-i386"
#endif
#endif
+#endif
#ifdef TC_M68K
#include "coff/m68k.h"
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index f85aed3..1e8534a 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -5766,9 +5766,10 @@ const char *md_shortopts = "qn";
#define OPTION_MARCH (OPTION_MD_BASE + 3)
#define OPTION_MTUNE (OPTION_MD_BASE + 4)
-struct option md_longopts[] = {
+struct option md_longopts[] =
+{
{"32", no_argument, NULL, OPTION_32},
-#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
+#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF) || defined(TE_PEP)
{"64", no_argument, NULL, OPTION_64},
#endif
{"divide", no_argument, NULL, OPTION_DIVIDE},
@@ -5812,14 +5813,18 @@ md_parse_option (int c, char *arg)
/* -s: On i386 Solaris, this tells the native assembler to use
.stab instead of .stab.excl. We always use .stab anyhow. */
break;
-
+#endif
+#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF) || defined(TE_PEP)
case OPTION_64:
{
const char **list, **l;
list = bfd_target_list ();
for (l = list; *l != NULL; l++)
- if (strncmp (*l, "elf64-x86-64", 12) == 0)
+ if ( strncmp (*l, "elf64-x86-64", 12) == 0
+ || strcmp (*l, "coff-x86-64") == 0
+ || strcmp (*l, "pe-x86-64") == 0
+ || strcmp (*l, "pei-x86-64") == 0)
{
default_arch = "x86_64";
break;
@@ -5927,6 +5932,26 @@ md_show_usage (stream)
}
+#if defined(TE_PEP)
+const char *
+x86_64_target_format (void)
+{
+ if (strcmp (default_arch, "x86_64") == 0)
+ {
+ set_code_flag (CODE_64BIT);
+ return COFF_TARGET_FORMAT;
+ }
+ else if (strcmp (default_arch, "i386") == 0)
+ {
+ set_code_flag (CODE_32BIT);
+ return "coff-i386";
+ }
+
+ as_fatal (_("Unknown architecture"));
+ return NULL;
+}
+#endif
+
#if ((defined (OBJ_MAYBE_COFF) && defined (OBJ_MAYBE_AOUT)) \
|| defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF))
diff --git a/gas/config/te-pep.h b/gas/config/te-pep.h
new file mode 100644
index 0000000..164b22d
--- /dev/null
+++ b/gas/config/te-pep.h
@@ -0,0 +1,10 @@
+#define TE_PEP
+#define COFF_WITH_pex64
+
+#define TE_PE
+#define LEX_AT (LEX_BEGIN_NAME | LEX_NAME) /* Can have @'s inside labels. */
+
+/* The PE format supports long section names. */
+#define COFF_LONG_SECTION_NAMES
+
+#include "obj-format.h"
diff --git a/gas/configure b/gas/configure
index 166ae27..e31fa35 100755
--- a/gas/configure
+++ b/gas/configure
@@ -3921,7 +3921,7 @@ ia64-*-hpux*)
rm -rf conftest*
;;
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+x86_64-*linux*|x86_64-*mingw64*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
@@ -3932,7 +3932,7 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
case "`/usr/bin/file conftest.o`" in
*32-bit*)
case $host in
- x86_64-*linux*)
+ x86_64-*linux*|x86_64-*mingw64*)
LD="${LD-ld} -m elf_i386"
;;
ppc64-*linux*|powerpc64-*linux*)
@@ -3948,7 +3948,7 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
;;
*64-bit*)
case $host in
- x86_64-*linux*)
+ x86_64-*linux*|x86_64-*mingw64*)
LD="${LD-ld} -m elf_x86_64"
;;
ppc*-*linux*|powerpc*-*linux*)
@@ -4895,6 +4895,19 @@ if test ${all_targets} = "yes"; then
;;
esac
;;
+ x86_64)
+ case ${obj_format} in
+ aout)
+ emulations="$emulations i386coff i386elf"
+ ;;
+ coff)
+ emulations="$emulations i386aout i386elf"
+ ;;
+ elf)
+ emulations="$emulations i386aout i386coff"
+ ;;
+ esac
+ ;;
esac
fi
@@ -4958,6 +4971,11 @@ cat >>confdefs.h <<\_ACEOF
#define M88KCOFF 1
_ACEOF
;;
+ x86_64)
+cat >>confdefs.h <<\_ACEOF
+#define I386COFF 1
+_ACEOF
+ ;;
esac
;;
esac
diff --git a/gas/configure.in b/gas/configure.in
index c306516..a0592d1 100644
--- a/gas/configure.in
+++ b/gas/configure.in
@@ -417,6 +417,19 @@ if test ${all_targets} = "yes"; then
;;
esac
;;
+ x86_64)
+ case ${obj_format} in
+ aout)
+ emulations="$emulations i386coff i386elf"
+ ;;
+ coff)
+ emulations="$emulations i386aout i386elf"
+ ;;
+ elf)
+ emulations="$emulations i386aout i386coff"
+ ;;
+ esac
+ ;;
esac
fi
@@ -461,6 +474,7 @@ case ${obj_format} in
i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
+ x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
esac
;;
esac
diff --git a/gas/configure.tgt b/gas/configure.tgt
index e7c7e23..c79d2b2 100644
--- a/gas/configure.tgt
+++ b/gas/configure.tgt
@@ -79,7 +79,7 @@ case ${cpu} in
strongarm*b) cpu_type=arm endian=big ;;
strongarm*) cpu_type=arm endian=little ;;
v850*) cpu_type=v850 ;;
- x86_64) cpu_type=i386 arch=x86_64;;
+ x86_64*) cpu_type=i386 arch=x86_64;;
xscale*be|xscale*b) cpu_type=arm endian=big ;;
xscale*) cpu_type=arm endian=little ;;
xtensa*) cpu_type=xtensa arch=xtensa ;;
@@ -212,6 +212,7 @@ case ${generic_target} in
i386-*-cygwin*) fmt=coff em=pe ;;
i386-*-interix*) fmt=coff em=interix ;;
i386-*-mingw32*) fmt=coff em=pe ;;
+ i386-*-mingw64*) fmt=coff em=pep ;;
i386-*-nto-qnx*) fmt=elf ;;
i386-*-*nt*) fmt=coff em=pe ;;
i386-*-chaos) fmt=elf ;;
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 05b0f81..89892f7 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,18 @@
+2006-09-20 Kai Tietz <Kai.Tietz@onevision.com>
+
+ * gas/all/gas.exp: Add support for x86_64-*-mingw64.
+ * gas/i386/immed64.d: Add #pass for avoid proplems with alignment paddings.
+ * gas/i386/rex.d: Changed for x86_64-mingw32 target matching and padding.
+ * gas/i386/i386.d: Likewise.
+ * gas/i386/x86-64-addr32.d: Likewise.
+ * gas/i386/x86-64-branch.d: Likewise.
+ * gas/i386/x86-64-crx-suffix.d: Likewise.
+ * gas/i386/x86-64-crx.d: Likewise.
+ * gas/i386/x86-64-drx-suffix.d: Likewise.
+ * gas/i386/x86-64-crx-suffix.d: Likewise.
+ * gas/i386/x86-64-opcode.d: Likewise.
+ * gas/i386/x86-64-pcrel.d: Likewise.
+
2006-09-19 Bernd Schmidt <bernd.schmidt@analog.com>
* gas/bfin/load.s, gas/bfin/load.d: Add constant folding tests.
diff --git a/gas/testsuite/gas/all/gas.exp b/gas/testsuite/gas/all/gas.exp
index 928dd88..adaa486 100644
--- a/gas/testsuite/gas/all/gas.exp
+++ b/gas/testsuite/gas/all/gas.exp
@@ -207,6 +207,7 @@ if { ([istarget *-*-coff*] && ![istarget *arm*-*-coff] && ![istarget thumb*-*-
|| [istarget i*86-*-isc*] \
|| [istarget i*86-*-go32*] \
|| [istarget i*86-*-cygwin*] \
+ || [istarget x86_64-*-mingw64*] \
|| [istarget i*86-*-*nt] \
|| [istarget i*86-*-interix*] \
|| ([istarget i960-*-vxworks5.*] && ![istarget i960-*-vxworks5.0*]) } {
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index 4158b86..096b58a 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -155,7 +155,9 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t
run_dump_test "x86-64-rep-suffix"
run_dump_test "x86-64-gidt"
run_dump_test "x86-64-nops"
+ if ![istarget "*-*-mingw64*"] then {
run_dump_test "x86-64-nops-1"
+ }
run_dump_test "x86-64-nops-1-k8"
run_dump_test "x86-64-nops-1-nocona"
run_dump_test "x86-64-nops-1-merom"
diff --git a/gas/testsuite/gas/i386/immed64.d b/gas/testsuite/gas/i386/immed64.d
index c2ab324..6676806 100644
--- a/gas/testsuite/gas/i386/immed64.d
+++ b/gas/testsuite/gas/i386/immed64.d
@@ -57,3 +57,4 @@ Disassembly of section \.text:
[ ]*[0-9a-fA-F]+:[ ]+e5 04[ ]+inl? +\$0x4,%eax
[ ]*[0-9a-fA-F]+:[ ]+e5 08[ ]+inl? +\$0x8,%eax
[ ]*[0-9a-fA-F]+:[ ]+e5 00[ ]+inl? +\$0x0,%eax
+#pass
diff --git a/gas/testsuite/gas/i386/rex.d b/gas/testsuite/gas/i386/rex.d
index dab6b12..285e1dc 100644
--- a/gas/testsuite/gas/i386/rex.d
+++ b/gas/testsuite/gas/i386/rex.d
@@ -1,7 +1,7 @@
#objdump: -dw
#name: x86-64 manual rex prefix use
-.*: +file format elf64-x86-64
+.*: +file format .*
Disassembly of section .text:
diff --git a/gas/testsuite/gas/i386/x86-64-addr32.d b/gas/testsuite/gas/i386/x86-64-addr32.d
index c892fb1..d22cff9 100644
--- a/gas/testsuite/gas/i386/x86-64-addr32.d
+++ b/gas/testsuite/gas/i386/x86-64-addr32.d
@@ -2,7 +2,7 @@
#objdump: -drw
#name: x86-64 32-bit addressing
-.*: +file format elf64-x86-64
+.*: +file format .*
Disassembly of section .text:
@@ -11,3 +11,4 @@ Disassembly of section .text:
[ ]*8:[ ]+67 49 8d 80 00 00 00 00[ ]+addr32[ ]+lea[ ]+0x0\(%r8d?\),%rax.*
[ ]*10:[ ]+67 48 8d 05 00 00 00 00[ ]+addr32[ ]+lea[ ]+0\(%[re]ip\),%rax.*
[ ]*18:[ ]+67 48 8d 04 25 00 00 00 00[ ]+addr32[ ]+lea[ ]+0x0,%rax.*
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-branch.d b/gas/testsuite/gas/i386/x86-64-branch.d
index 7ddd6fe..17c46a7 100644
--- a/gas/testsuite/gas/i386/x86-64-branch.d
+++ b/gas/testsuite/gas/i386/x86-64-branch.d
@@ -2,7 +2,7 @@
#objdump: -drw
#name: x86-64 indirect branch
-.*: +file format elf64-x86-64
+.*: +file format .*
Disassembly of section .text:
@@ -11,3 +11,4 @@ Disassembly of section .text:
[ ]*2:[ ]+ff d0[ ]+callq[ ]+\*%rax
[ ]*4:[ ]+ff e0[ ]+jmpq[ ]+\*%rax
[ ]*6:[ ]+ff e0[ ]+jmpq[ ]+\*%rax
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-crx-suffix.d b/gas/testsuite/gas/i386/x86-64-crx-suffix.d
index 1dc3584..6dfd47c 100644
--- a/gas/testsuite/gas/i386/x86-64-crx-suffix.d
+++ b/gas/testsuite/gas/i386/x86-64-crx-suffix.d
@@ -2,7 +2,7 @@
#name: x86-64 control register related opcodes (with suffixes)
#source: x86-64-crx.s
-.*: +file format elf64-x86-64
+.*: +file format .*
Disassembly of section .text:
diff --git a/gas/testsuite/gas/i386/x86-64-crx.d b/gas/testsuite/gas/i386/x86-64-crx.d
index 8c1333f..62abe70 100644
--- a/gas/testsuite/gas/i386/x86-64-crx.d
+++ b/gas/testsuite/gas/i386/x86-64-crx.d
@@ -2,7 +2,7 @@
#name: x86-64 control register related opcodes
#source: x86-64-crx.s
-.*: +file format elf64-x86-64
+.*: +file format .*
Disassembly of section .text:
diff --git a/gas/testsuite/gas/i386/x86-64-drx-suffix.d b/gas/testsuite/gas/i386/x86-64-drx-suffix.d
index 1f76b8b..254e24d 100644
--- a/gas/testsuite/gas/i386/x86-64-drx-suffix.d
+++ b/gas/testsuite/gas/i386/x86-64-drx-suffix.d
@@ -2,7 +2,7 @@
#name: x86-64 debug register related opcodes (with suffixes)
#source: x86-64-drx.s
-.*: +file format elf64-x86-64
+.*: +file format .*
Disassembly of section .text:
diff --git a/gas/testsuite/gas/i386/x86-64-drx.d b/gas/testsuite/gas/i386/x86-64-drx.d
index 879ce50..18b328f 100644
--- a/gas/testsuite/gas/i386/x86-64-drx.d
+++ b/gas/testsuite/gas/i386/x86-64-drx.d
@@ -1,7 +1,7 @@
#objdump: -dw
#name: x86-64 debug register related opcodes
-.*: +file format elf64-x86-64
+.*: +file format .*
Disassembly of section .text:
diff --git a/gas/testsuite/gas/i386/x86-64-opcode.d b/gas/testsuite/gas/i386/x86-64-opcode.d
index 669782a..d3bd17f 100644
--- a/gas/testsuite/gas/i386/x86-64-opcode.d
+++ b/gas/testsuite/gas/i386/x86-64-opcode.d
@@ -2,7 +2,7 @@
#objdump: -drw
#name: x86-64 opcode
-.*: +file format elf64-x86-64
+.*: +file format .*
Disassembly of section .text:
diff --git a/gas/testsuite/gas/i386/x86-64-pcrel.d b/gas/testsuite/gas/i386/x86-64-pcrel.d
index 3be86c7..818ea2e 100644
--- a/gas/testsuite/gas/i386/x86-64-pcrel.d
+++ b/gas/testsuite/gas/i386/x86-64-pcrel.d
@@ -1,7 +1,7 @@
#objdump: -drw
#name: x86-64 pcrel
-.*: +file format elf64-x86-64
+.*: +file format .*
Disassembly of section .text:
diff --git a/gas/testsuite/gas/i386/x86-64-rip.d b/gas/testsuite/gas/i386/x86-64-rip.d
index 1b1d6c8..a45f6bc 100644
--- a/gas/testsuite/gas/i386/x86-64-rip.d
+++ b/gas/testsuite/gas/i386/x86-64-rip.d
@@ -2,7 +2,7 @@
#objdump: -drw
#name: x86-64 rip addressing
-.*: +file format elf64-x86-64
+.*: +file format .*
Disassembly of section .text:
@@ -11,3 +11,4 @@ Disassembly of section .text:
[ ]*6:[ ]+8d 05 11 11 11 11[ ]+lea[ ]+286331153\(%rip\),%eax[ ]*(#.*)?
[ ]*c:[ ]+8d 05 01 00 00 00[ ]+lea[ ]+1\(%rip\),%eax[ ]*(#.*)?
[ ]*12:[ ]+8d 05 00 00 00 00[ ]+lea[ ]+0\(%rip\),%eax[ ]*(#.*)?
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-stack-intel.d b/gas/testsuite/gas/i386/x86-64-stack-intel.d
index 0dfab4d..aaeff2f 100644
--- a/gas/testsuite/gas/i386/x86-64-stack-intel.d
+++ b/gas/testsuite/gas/i386/x86-64-stack-intel.d
@@ -2,7 +2,7 @@
#name: x86-64 stack-related opcodes (Intel mode)
#source: x86-64-stack.s
-.*: +file format elf64-x86-64
+.*: +file format .*
Disassembly of section .text:
diff --git a/gas/testsuite/gas/i386/x86-64-stack-suffix.d b/gas/testsuite/gas/i386/x86-64-stack-suffix.d
index c5d789d..75fd900 100644
--- a/gas/testsuite/gas/i386/x86-64-stack-suffix.d
+++ b/gas/testsuite/gas/i386/x86-64-stack-suffix.d
@@ -2,7 +2,7 @@
#name: x86-64 stack-related opcodes (with suffixes)
#source: x86-64-stack.s
-.*: +file format elf64-x86-64
+.*: +file format .*
Disassembly of section .text:
diff --git a/gas/testsuite/gas/i386/x86-64-stack.d b/gas/testsuite/gas/i386/x86-64-stack.d
index fa010a9..f686a04 100644
--- a/gas/testsuite/gas/i386/x86-64-stack.d
+++ b/gas/testsuite/gas/i386/x86-64-stack.d
@@ -1,7 +1,7 @@
#objdump: -dw
#name: x86-64 stack-related opcodes
-.*: +file format elf64-x86-64
+.*: +file format .*
Disassembly of section .text:
diff --git a/gas/testsuite/gas/i386/x86_64.d b/gas/testsuite/gas/i386/x86_64.d
index 60452a5..70ed07c 100644
--- a/gas/testsuite/gas/i386/x86_64.d
+++ b/gas/testsuite/gas/i386/x86_64.d
@@ -6,7 +6,7 @@
Disassembly of section .text:
-0+ <bar-0x1a7>:
+0+ <.*>:
[ ]+0: 01 ca[ ]+add[ ]+%ecx,%edx
[ ]+2: 44 01 ca[ ]+add[ ]+%r9d,%edx
[ ]+5: 41 01 ca[ ]+add[ ]+%ecx,%r10d