bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug admin/10767] New: opcodes/i386-dis.c exceeds 256 levels of nested m


From: jerker dot back at gmail dot com
Subject: [Bug admin/10767] New: opcodes/i386-dis.c exceeds 256 levels of nested macros
Date: 13 Oct 2009 11:56:40 -0000

This is not a bug, rather to inform that the current solution breaks the
MS x64 compiler <= 15.00.30729.01. There is a limit of max 256 levels
of nested macros. The Intel compiler v11.1 do not have this limit,
neither do gcc.

As there are no functional 64bit gcc for PE targets and the Intel
compiler is not fully compatible with NT POSIX, the only current
possible choice is the MS compiler to get 64bit binaries.

Here is a simple solution to get it working:
Preprocess opcodes/i386-dis.c with the Intel compiler. 
Extract "struct dis386 vex_table" to opcodes/i386-dis_tables.c
Apply the following patch:

===================================================================
RCS file: /cvs/src/src/opcodes/i386-dis.c,v
retrieving revision 1.200
diff -w -b -B -u -p -r1.200 i386-dis.c
--- i386-dis.c  15 Sep 2009 17:53:40 -0000      1.200
+++ i386-dis.c  13 Oct 2009 02:17:19 -0000
@@ -6316,7 +6316,9 @@ static const struct dis386 three_byte_ta
   },
 };
 
-
+#if defined(_MSC_VER) && !defined(__INTEL_COMPILER)
+#include "i386-dis_tables.c"
+#else
 static const struct dis386 vex_table[][256] = {
   /* VEX_0F */
   {
@@ -7192,6 +7194,7 @@ static const struct dis386 vex_table[][2
     { "(bad)",         { XX } },
   },
 };
+#endif
 
 static const struct dis386 vex_len_table[][2] = {
   /* VEX_LEN_10_P_1 */

-- 
           Summary: opcodes/i386-dis.c exceeds 256 levels of nested macros
           Product: binutils
           Version: 2.21 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: admin
        AssignedTo: drow at sources dot redhat dot com
        ReportedBy: jerker dot back at gmail dot com
                CC: bug-binutils at gnu dot org
 GCC build triplet: x86_64-unknown-interix6.1
  GCC host triplet: x86_64-unknown-interix6.1
GCC target triplet: x86_64-unknown-interix6.1


http://sourceware.org/bugzilla/show_bug.cgi?id=10767

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]