]> granicus.if.org Git - yasm/commitdiff
Add (but don't enable) AMD K10 alignment padding data
authorBrian Gladman <brg@gladman.plus.com>
Wed, 18 Mar 2009 19:57:37 +0000 (19:57 -0000)
committerBrian Gladman <brg@gladman.plus.com>
Wed, 18 Mar 2009 19:57:37 +0000 (19:57 -0000)
svn path=/trunk/yasm/; revision=2179

modules/arch/x86/x86arch.c

index 1b272f4bfecdd4f24953411b5839c2713d813113..651fc426b594c0944565ef14880793ebff6012ba 100644 (file)
@@ -333,6 +333,8 @@ x86_get_fill(const yasm_arch *arch)
         "\x90",                         /* 1 - nop                      */
         (const unsigned char *)
         "\x66\x90",                     /* 2 - o16; nop                 */
+#if 1   
+        /* recommmended padding for AMD K8 processors                   */
         (const unsigned char *)
         "\x66\x66\x90",                 /* 3 - o16; o16; nop            */
         (const unsigned char *)
@@ -367,6 +369,44 @@ x86_get_fill(const yasm_arch *arch)
         (const unsigned char *)
         "\x66\x66\x66\x90\x66\x66\x66"  /* 15 */
         "\x90\x66\x66\x66\x90\x66\x66\x90"
+#else   
+        /* from Software Optimisation Guide for AMD Family 10h  */
+        /* Processors 40546 revision 3.10 February 2009         */
+        (const unsigned char *)
+        "\x0f\x1f\x00",                 /* 3 */\r
+        (const unsigned char *)
+        "\x0f\x1f\x40\x00",             /* 4 */\r
+        (const unsigned char *)
+        "\x0f\x1f\x44\x00\x00",         /* 5 */\r
+        (const unsigned char *)
+        "\x66\x0f\x1f\x44\x00\x00",     /* 6 */\r
+        (const unsigned char *)
+        "\x0f\x1f\x80\x00\x00\x00\x00", /* 7 */\r
+        (const unsigned char *)
+        "\x0f\x1f\x84\x00\x00\x00\x00"  /* 8 */\r
+        "\x00",\r
+        (const unsigned char *)
+        "\x66\x0f\x1f\x84\x00\x00\x00"  /* 9 */\r
+        "\x00\x00",\r
+        (const unsigned char *)
+        "\x66\x2e\x0f\x1f\x84\x00\x00"  /* 10 */\r
+        "\x00\x00\x00",\r
+        (const unsigned char *)
+        "\x0f\x1f\x44\x00\x00\x66\x0f"  /* 11 */\r
+        "\x1f\x44\x00\x00",\r
+        (const unsigned char *)
+        "\x66\x0f\x1f\x44\x00\x00\x66"  /* 12 */\r
+        "\x0f\x1f\x44\x00\x00",\r
+        (const unsigned char *)
+        "\x66\x0f\x1f\x44\x00\x00\x0f"  /* 13 */\r
+        "\x1f\x80\x00\x00\x00\x00",\r
+        (const unsigned char *)
+        "\x0f\x1f\x80\x00\x00\x00\x00"  /* 14 */\r
+        "\x0f\x1f\x80\x00\x00\x00\x00",\r
+        (const unsigned char *)
+        "\x0f\x1f\x80\x00\x00\x00\x00"  /* 15 */\r
+        "\x0f\x1f\x84\x00\x00\x00\x00\x00"\r
+#endif
     };
     switch (arch_x86->mode_bits) {
         case 16: