+2010-07-03  Jan Beulich  <jbeulich@novell.com>
+
+       PR gas/11732
+       * config/tc-i386.c (i386_finalize_displacement): Don't call
+       section_symbol() with expr_section.
+
 2010-07-03  Cary Coutant  <ccoutant@google.com>
 
        * Makefile.am: Add compress-debug.c and compress-debug.h.
 
        goto inv_disp;
 
       if (S_IS_LOCAL (exp->X_add_symbol)
-         && S_GET_SEGMENT (exp->X_add_symbol) != undefined_section)
+         && S_GET_SEGMENT (exp->X_add_symbol) != undefined_section
+         && S_GET_SEGMENT (exp->X_add_symbol) != expr_section)
        section_symbol (S_GET_SEGMENT (exp->X_add_symbol));
       exp->X_op = O_subtract;
       exp->X_op_symbol = GOT_symbol;
 
+2010-07-03  Jan Beulich  <jbeulich@novell.com>
+
+       PR gas/11732
+       * gas/i386/i386.exp: Run new tests.
+       * gas/i386/intel-got{32,64}.{s,d}: New.
+
 2010-07-01  H.J. Lu  <hongjiu.lu@intel.com>
 
        AVX Programming Reference (June, 2010)
 
     run_dump_test "intel16"
     run_list_test "intelbad" ""
     run_dump_test "intelok"
+    run_dump_test "intel-got32"
     run_dump_test "prefix"
     run_dump_test "amd"
     run_dump_test "katmai"
       run_dump_test "x86-64-opcode-inval-intel"
     }
     run_dump_test "rexw"
+    run_dump_test "intel-got64"
     run_dump_test "x86-64-fxsave"
     run_dump_test "x86-64-fxsave-intel"
     run_dump_test "x86-64-arch-1"
 
--- /dev/null
+#objdump: -dwMintel
+#name: i386 intel-got
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+000 <_start>:
+[      ]*[0-9a-f]+:[   ]+8b 15 04 00 00 00[    ]+mov[  ]+edx,(DWORD PTR )?(ds:)?0x4
+[      ]*[0-9a-f]+:[   ]+c3[   ]+ret[  ]*
+#pass
 
--- /dev/null
+.text
+.intel_syntax noprefix
+_start:
+       mov     edx, [x1@GOTOFF + x2]
+       ret
+
+.equ x2, 4
 
--- /dev/null
+#objdump: -dwMintel
+#name: x86-64 intel-got
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+000 <_start>:
+[      ]*[0-9a-f]+:[   ]+a1 00 00 00 00 00 00 00 00[   ]+movabs[       ]+eax,(ds:)?0x0
+[      ]*[0-9a-f]+:[   ]+ff 35 00 00 00 00[    ]+push[         ]+(QWORD PTR )?\[rip(\+(0x)?0)?\]([     ]+#.*)?
+[      ]*[0-9a-f]+:[   ]+c3[   ]+ret[  ]*
+#pass
 
--- /dev/null
+.text
+.intel_syntax noprefix
+_start:
+       movabs  eax, [x1@GOTOFF + x2]
+       push    [rip + x1@GOTPCREL + x2]
+       ret
+
+.equ x2, 8