public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/58442] New: bootstrapping vax crashes on NetBSD
@ 2013-09-17 13:51 martin at netbsd dot org
  2013-09-17 13:54 ` [Bug target/58442] " martin at netbsd dot org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: martin at netbsd dot org @ 2013-09-17 13:51 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58442

            Bug ID: 58442
           Summary: bootstrapping vax crashes on NetBSD
           Product: gcc
           Version: 4.8.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: martin at netbsd dot org

During stage1 build of libstc++ this call dies with a segfault:

Reading symbols from /usr/pkgobj/lang/gcc48/work/build/gcc/cc1plus...done.
(gdb) run -quiet -nostdinc++ -v -I
/usr/pkgobj/lang/gcc48/work/gcc-4.8.1/libstdc++-v3/../libgcc -I
/usr/pkgobj/lang/gcc48/work/build/vax--netbsdelf/libstdc++-v3/include/vax--netbsdelf
-I /usr/pkgobj/lang/gcc48/work/build/vax--netbsdelf/libstdc++-v3/include -I
/usr/pkgobj/lang/gcc48/work/gcc-4.8.1/libstdc++-v3/libsupc++ -I
/usr/pkg/include -I /usr/include -iprefix
/usr/pkgobj/lang/gcc48/work/build/gcc/../lib/gcc/vax--netbsdelf/4.8.1/ -isystem
/usr/pkgobj/lang/gcc48/work/build/./gcc/include -isystem
/usr/pkgobj/lang/gcc48/work/build/./gcc/include-fixed -D _GLIBCXX_SHARED -D PIC
-D _GLIBCXX_SHARED -isystem /usr/pkg/gcc48/vax--netbsdelf/include -isystem
/usr/pkg/gcc48/vax--netbsdelf/sys-include
../../../../../gcc-4.8.1/libstdc++-v3/src/c++98/locale-inst.cc -quiet -dumpbase
locale-inst.cc -auxbase-strip locale-inst.o -g -O2 -O1 -Wall -Wextra
-Wwrite-strings -Wcast-qual -Wabi -version -fno-implicit-templates
-fdiagnostics-show-location=once -ffunction-sections -fdata-sections
-frandom-seed=locale-inst.lo -fgcse -fgcse-after-reload -fPIC -o
/var/tmp//ccj04DGQ.s
[..]
GNU C++ (GCC) version 4.8.1 (vax--netbsdelf)
        compiled by GNU C version 4.1.3 20080704 prerelease (NetBSD nb3
20111107), GMP version 5.0.1, MPFR version 3.1.2, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: e5b251aee23ceb19ee70c90a0aeb9824

Program received signal SIGSEGV, Segmentation fault.
0x0092cdb0 in recog_1 (x0=0x7e1b1a5c, insn=0x7e1b26c0, 
    pnum_clobbers=0x0, 2115705436, 2115708608, 0)
    at ../../gcc-4.8.1/gcc/config/vax/vax.md:417
(gdb) bt
#0  0x0092cdb0 in recog_1 (x0=0x7e1b1a5c, insn=0x7e1b26c0, 
    pnum_clobbers=0x0, 2115705436, 2115708608, 0)
    at ../../gcc-4.8.1/gcc/config/vax/vax.md:417
#1  0x0092f180 in recog_2 (x0=0x7e1b1a5c, insn=0x7e1b26c0, 
    pnum_clobbers=0x0, 2115705436, 2115708608, 0)
    at ../../gcc-4.8.1/gcc/config/vax/vax.md:529
#2  0x00932c1c in recog (x0=0x7e1b1a5c, insn=0x7e1b26c0, 
    pnum_clobbers=0x0, 2115705436, 2115708608, 0)
    at ../../gcc-4.8.1/gcc/config/vax/vax.md:1462
#3  0x0066f5e3 in recog_memoized (insn=0x7e1b26c0, 2115708608)
    at ../../gcc-4.8.1/gcc/recog.h:155
#4  0x0066f83c in extract_insn (insn=0x7e1b26c0, 2115708608)
    at ../../gcc-4.8.1/gcc/recog.c:2148
#5  0x005066d1 in instantiate_virtual_regs_in_insn (
    insn=0x7e1b26c0, 2115708608) at ../../gcc-4.8.1/gcc/function.c:1561
#6  0x00507cd3 in instantiate_virtual_regs ()
    at ../../gcc-4.8.1/gcc/function.c:1928
#7  0x00646f2f in execute_one_pass (pass=0xef6974, 15690100)
    at ../../gcc-4.8.1/gcc/passes.c:2330
#8  0x00647108 in execute_pass_list (pass=0xef6974, 15690100)
    at ../../gcc-4.8.1/gcc/passes.c:2378
#9  0x0064713d in execute_pass_list (pass=0xef7194, 15692180)
    at ../../gcc-4.8.1/gcc/passes.c:2379
(gdb) list
412                           (match_operand:VAXint 2 "general_operand"
"nrmT,nrmT")))]
413       ""
414       "@
415        sub<VAXint:isfx>2 %2,%0
416        sub<VAXint:isfx>3 %2,%1,%0")
417     
418     (define_expand "subdi3"
419       [(set (match_operand:DI 0 "nonimmediate_operand" "=g")
420             (minus:DI (match_operand:DI 1 "general_operand" "g")
421                       (match_operand:DI 2 "general_operand" "g")))]
(gdb) p debug_rtx(x0)
(set (zero_extract:SI (subreg:SI (reg/v:DI 71 [ __s ]) 4)
        (const_int 8 [0x8])
        (const_int 0 [0]))
    (subreg:SI (reg:DI 108) 4))


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/58442] bootstrapping vax crashes on NetBSD
  2013-09-17 13:51 [Bug target/58442] New: bootstrapping vax crashes on NetBSD martin at netbsd dot org
@ 2013-09-17 13:54 ` martin at netbsd dot org
  2013-09-17 17:34 ` jbglaw@lug-owl.de
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: martin at netbsd dot org @ 2013-09-17 13:54 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58442

--- Comment #1 from Martin Husemann <martin at netbsd dot org> ---
(gdb) x/i 0x0092cdb0
=> 0x92cdb0 <recog_1(rtx, rtx, int*)+950>:      movb 0x14(r0),r0
(gdb) info reg
r0             0x4      4
r1             0x8      8
r2             0x0      0
r3             0xf0c308 15778568
r4             0x0      0
r5             0x0      0
r6             0x9e     158
r7             0x7f7d6c72       2138926194
r8             0x7f7ca000       2138873856
r9             0x7ffffff0       2147483632
r10            0x7f7d0000       2138898432
r11            0xa1b08  662280
ap             0x7fffe1c4       2147475908
fp             0x7fffe1b0       2147475888
sp             0x7fffe110       2147475728
pc             0x92cdb0 9620912
ps             0x3c00000        62914560


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/58442] bootstrapping vax crashes on NetBSD
  2013-09-17 13:51 [Bug target/58442] New: bootstrapping vax crashes on NetBSD martin at netbsd dot org
  2013-09-17 13:54 ` [Bug target/58442] " martin at netbsd dot org
@ 2013-09-17 17:34 ` jbglaw@lug-owl.de
  2013-09-18  7:23 ` martin at netbsd dot org
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: jbglaw@lug-owl.de @ 2013-09-17 17:34 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58442

--- Comment #2 from Jan-Benedict Glaw <jbglaw@lug-owl.de> ---
So r0 is waay off.  As we're far into the function (950) and fiddling with r0,
I guess this is the final part, preparing to return from here. An assembler
dump of the whole function would be helpful I hope.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/58442] bootstrapping vax crashes on NetBSD
  2013-09-17 13:51 [Bug target/58442] New: bootstrapping vax crashes on NetBSD martin at netbsd dot org
  2013-09-17 13:54 ` [Bug target/58442] " martin at netbsd dot org
  2013-09-17 17:34 ` jbglaw@lug-owl.de
@ 2013-09-18  7:23 ` martin at netbsd dot org
  2013-09-19 20:43 ` martin at netbsd dot org
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: martin at netbsd dot org @ 2013-09-18  7:23 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58442

--- Comment #3 from Martin Husemann <martin at netbsd dot org> ---
   0x92c9fc <recog_1(rtx, rtx, int*)+2>:        movab 0xffffff60(sp),sp
   0x92ca01 <recog_1(rtx, rtx, int*)+7>:        
    movab *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,0xffffffd8(fp)
   0x92ca09 <recog_1(rtx, rtx, int*)+15>:       movl 0x4(ap),r0
   0x92ca0d <recog_1(rtx, rtx, int*)+19>:       movl 0x4(r0),0xffffffdc(fp)
   0x92ca12 <recog_1(rtx, rtx, int*)+24>:       movw *0xffffffdc(fp),r0
   0x92ca16 <recog_1(rtx, rtx, int*)+28>:       movzwl r0,r0
   0x92ca19 <recog_1(rtx, rtx, int*)+31>:       movl r0,0xffffff64(fp)
   0x92ca1e <recog_1(rtx, rtx, int*)+36>:       cmpl 0xffffff64(fp),$0x2c
   0x92ca23 <recog_1(rtx, rtx, int*)+41>:       
    beql 0x92ca60 <recog_1(rtx, rtx, int*)+102>
   0x92ca25 <recog_1(rtx, rtx, int*)+43>:       cmpl 0xffffff64(fp),$0x0000007a
   0x92ca2e <recog_1(rtx, rtx, int*)+52>:       
    bneq 0x92ca33 <recog_1(rtx, rtx, int*)+57>
   0x92ca30 <recog_1(rtx, rtx, int*)+54>:       
    brw 0x92cbe1 <recog_1(rtx, rtx, int*)+487>
   0x92ca33 <recog_1(rtx, rtx, int*)+57>:       pushl $0x6
   0x92ca35 <recog_1(rtx, rtx, int*)+59>:       pushl 0xffffffdc(fp)
   0x92ca38 <recog_1(rtx, rtx, int*)+62>:       
    calls $0x2,0x6715e8 <nonimmediate_operand(rtx_def*, machine_mode)>
   0x92ca3f <recog_1(rtx, rtx, int*)+69>:       clrb 0xffffff6b(fp)
   0x92ca43 <recog_1(rtx, rtx, int*)+73>:       tstl r0
   0x92ca45 <recog_1(rtx, rtx, int*)+75>:       
    beql 0x92ca4c <recog_1(rtx, rtx, int*)+82>
   0x92ca47 <recog_1(rtx, rtx, int*)+77>:       movb $0x1,0xffffff6b(fp)
   0x92ca4c <recog_1(rtx, rtx, int*)+82>:       tstb 0xffffff6b(fp)
   0x92ca50 <recog_1(rtx, rtx, int*)+86>:       
    bneq 0x92ca55 <recog_1(rtx, rtx, int*)+91>
   0x92ca52 <recog_1(rtx, rtx, int*)+88>:       
    brw 0x92df46 <recog_1(rtx, rtx, int*)+5452>
   0x92ca55 <recog_1(rtx, rtx, int*)+91>:       
    movl 0xffffffdc(fp),*0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>
   0x92ca5d <recog_1(rtx, rtx, int*)+99>:       
    brw 0x92cf4a <recog_1(rtx, rtx, int*)+1360>
   0x92ca60 <recog_1(rtx, rtx, int*)+102>:      pushl $0x6
   0x92ca62 <recog_1(rtx, rtx, int*)+104>:      pushl 0xffffffdc(fp)
   0x92ca65 <recog_1(rtx, rtx, int*)+107>:      
    calls $0x2,0x66d802 <push_operand(rtx_def*, machine_mode)>
   0x92ca6c <recog_1(rtx, rtx, int*)+114>:      clrb 0xffffff6c(fp)
   0x92ca70 <recog_1(rtx, rtx, int*)+118>:      tstl r0
   0x92ca72 <recog_1(rtx, rtx, int*)+120>:      
    beql 0x92ca79 <recog_1(rtx, rtx, int*)+127>
   0x92ca74 <recog_1(rtx, rtx, int*)+122>:      movb $0x1,0xffffff6c(fp)
   0x92ca79 <recog_1(rtx, rtx, int*)+127>:      tstb 0xffffff6c(fp)
   0x92ca7d <recog_1(rtx, rtx, int*)+131>:      
    beql 0x92ca33 <recog_1(rtx, rtx, int*)+57>
   0x92ca7f <recog_1(rtx, rtx, int*)+133>:      
    movl 0xffffffdc(fp),*0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>
   0x92ca87 <recog_1(rtx, rtx, int*)+141>:      movl 0x4(ap),r0
   0x92ca8b <recog_1(rtx, rtx, int*)+145>:      movl 0x8(r0),0xffffffdc(fp)
   0x92ca90 <recog_1(rtx, rtx, int*)+150>:      movl 0xffffffdc(fp),r0
   0x92ca94 <recog_1(rtx, rtx, int*)+154>:      movb 0x2(r0),r0
   0x92ca98 <recog_1(rtx, rtx, int*)+158>:      movzbl r0,r0
   0x92ca9b <recog_1(rtx, rtx, int*)+161>:      cmpl r0,$0x6
   0x92ca9e <recog_1(rtx, rtx, int*)+164>:      
    bneq 0x92caac <recog_1(rtx, rtx, int*)+178>
   0x92caa0 <recog_1(rtx, rtx, int*)+166>:      movw *0xffffffdc(fp),r0
   0x92caa4 <recog_1(rtx, rtx, int*)+170>:      movzwl r0,r0
   0x92caa7 <recog_1(rtx, rtx, int*)+173>:      cmpl r0,$0x32
   0x92caaa <recog_1(rtx, rtx, int*)+176>:      
    beql 0x92cab8 <recog_1(rtx, rtx, int*)+190>
   0x92caac <recog_1(rtx, rtx, int*)+178>:      movl 0x4(ap),r0
   0x92cab0 <recog_1(rtx, rtx, int*)+182>:      movl 0x4(r0),0xffffffdc(fp)
   0x92cab5 <recog_1(rtx, rtx, int*)+187>:      
    brw 0x92ca33 <recog_1(rtx, rtx, int*)+57>
   0x92cab8 <recog_1(rtx, rtx, int*)+190>:      movl 0xffffffdc(fp),r0
   0x92cabc <recog_1(rtx, rtx, int*)+194>:      movl 0x4(r0),0xffffffe0(fp)
   0x92cac1 <recog_1(rtx, rtx, int*)+199>:      pushl $0x6
   0x92cac3 <recog_1(rtx, rtx, int*)+201>:      pushl 0xffffffe0(fp)
   0x92cac6 <recog_1(rtx, rtx, int*)+204>:      
    calls $0x2,0x671620 <register_operand(rtx_def*, machine_mode)>
   0x92cacd <recog_1(rtx, rtx, int*)+211>:      clrb 0xffffff6d(fp)
   0x92cad1 <recog_1(rtx, rtx, int*)+215>:      tstl r0
   0x92cad3 <recog_1(rtx, rtx, int*)+217>:      
    beql 0x92cada <recog_1(rtx, rtx, int*)+224>
   0x92cad5 <recog_1(rtx, rtx, int*)+219>:      movb $0x1,0xffffff6d(fp)
   0x92cada <recog_1(rtx, rtx, int*)+224>:      tstb 0xffffff6d(fp)
   0x92cade <recog_1(rtx, rtx, int*)+228>:      
    beql 0x92caf0 <recog_1(rtx, rtx, int*)+246>
   0x92cae0 <recog_1(rtx, rtx, int*)+230>:      
    movab *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,r0
   0x92cae7 <recog_1(rtx, rtx, int*)+237>:      addl2 $0x4,r0
   0x92caea <recog_1(rtx, rtx, int*)+240>:      movl 0xffffffe0(fp),(r0)
   0x92caee <recog_1(rtx, rtx, int*)+244>:      
    brb 0x92cafc <recog_1(rtx, rtx, int*)+258>
   0x92caf0 <recog_1(rtx, rtx, int*)+246>:      movl 0x4(ap),r0
   0x92caf4 <recog_1(rtx, rtx, int*)+250>:      movl 0x4(r0),0xffffffdc(fp)
   0x92caf9 <recog_1(rtx, rtx, int*)+255>:      
    brw 0x92ca33 <recog_1(rtx, rtx, int*)+57>
   0x92cafc <recog_1(rtx, rtx, int*)+258>:      movl 0xffffffdc(fp),r0
   0x92cb00 <recog_1(rtx, rtx, int*)+262>:      movl 0x8(r0),0xffffffe0(fp)
   0x92cb05 <recog_1(rtx, rtx, int*)+267>:      movl 0xffffffe0(fp),r0
   0x92cb09 <recog_1(rtx, rtx, int*)+271>:      movb 0x2(r0),r0
   0x92cb0d <recog_1(rtx, rtx, int*)+275>:      movzbl r0,r0
   0x92cb10 <recog_1(rtx, rtx, int*)+278>:      cmpl r0,$0x6
   0x92cb13 <recog_1(rtx, rtx, int*)+281>:      
    beql 0x92cb21 <recog_1(rtx, rtx, int*)+295>
   0x92cb15 <recog_1(rtx, rtx, int*)+283>:      movl 0x4(ap),r0
   0x92cb19 <recog_1(rtx, rtx, int*)+287>:      movl 0x4(r0),0xffffffdc(fp)
   0x92cb1e <recog_1(rtx, rtx, int*)+292>:      
    brw 0x92ca33 <recog_1(rtx, rtx, int*)+57>
   0x92cb21 <recog_1(rtx, rtx, int*)+295>:      pushl $0x6
   0x92cb23 <recog_1(rtx, rtx, int*)+297>:      pushl 0xffffffe0(fp)
   0x92cb26 <recog_1(rtx, rtx, int*)+300>:      
    calls $0x2,0x92bd36 <local_symbolic_operand(rtx_def*, machine_mode)>
   0x92cb2d <recog_1(rtx, rtx, int*)+307>:      clrb 0xffffff6e(fp)
   0x92cb31 <recog_1(rtx, rtx, int*)+311>:      tstl r0
   0x92cb33 <recog_1(rtx, rtx, int*)+313>:      
    beql 0x92cb3a <recog_1(rtx, rtx, int*)+320>
   0x92cb35 <recog_1(rtx, rtx, int*)+315>:      movb $0x1,0xffffff6e(fp)
   0x92cb3a <recog_1(rtx, rtx, int*)+320>:      tstb 0xffffff6e(fp)
   0x92cb3e <recog_1(rtx, rtx, int*)+324>:      
    beql 0x92cb50 <recog_1(rtx, rtx, int*)+342>
   0x92cb40 <recog_1(rtx, rtx, int*)+326>:      
    movab *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,r0
   0x92cb47 <recog_1(rtx, rtx, int*)+333>:      addl2 $0x8,r0
   0x92cb4a <recog_1(rtx, rtx, int*)+336>:      movl 0xffffffe0(fp),(r0)
   0x92cb4e <recog_1(rtx, rtx, int*)+340>:      
    brb 0x92cb8b <recog_1(rtx, rtx, int*)+401>
   0x92cb50 <recog_1(rtx, rtx, int*)+342>:      pushl $0x6
   0x92cb52 <recog_1(rtx, rtx, int*)+344>:      pushl 0xffffffe0(fp)
   0x92cb55 <recog_1(rtx, rtx, int*)+347>:      
    calls $0x2,0x92bd9e <external_symbolic_operand(rtx_def*, machine_mode)>
   0x92cb5c <recog_1(rtx, rtx, int*)+354>:      clrb 0xffffff6f(fp)
   0x92cb60 <recog_1(rtx, rtx, int*)+358>:      tstl r0
   0x92cb62 <recog_1(rtx, rtx, int*)+360>:      
    beql 0x92cb69 <recog_1(rtx, rtx, int*)+367>
   0x92cb64 <recog_1(rtx, rtx, int*)+362>:      movb $0x1,0xffffff6f(fp)
   0x92cb69 <recog_1(rtx, rtx, int*)+367>:      tstb 0xffffff6f(fp)
   0x92cb6d <recog_1(rtx, rtx, int*)+371>:      
    beql 0x92cb7f <recog_1(rtx, rtx, int*)+389>
   0x92cb6f <recog_1(rtx, rtx, int*)+373>:      
    movab *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,r0
   0x92cb76 <recog_1(rtx, rtx, int*)+380>:      addl2 $0x8,r0
   0x92cb79 <recog_1(rtx, rtx, int*)+383>:      movl 0xffffffe0(fp),(r0)
   0x92cb7d <recog_1(rtx, rtx, int*)+387>:      
    brb 0x92cbba <recog_1(rtx, rtx, int*)+448>
   0x92cb7f <recog_1(rtx, rtx, int*)+389>:      movl 0x4(ap),r0
   0x92cb83 <recog_1(rtx, rtx, int*)+393>:      movl 0x4(r0),0xffffffdc(fp)
   0x92cb88 <recog_1(rtx, rtx, int*)+398>:      
    brw 0x92ca33 <recog_1(rtx, rtx, int*)+57>
   0x92cb8b <recog_1(rtx, rtx, int*)+401>:      
    movab *0xef4424 <_GLOBAL_OFFSET_TABLE_+3380>,r0
   0x92cb92 <recog_1(rtx, rtx, int*)+408>:      movab 0x308(r0),r0
   0x92cb97 <recog_1(rtx, rtx, int*)+413>:      movl (r0),r0
   0x92cb9a <recog_1(rtx, rtx, int*)+416>:      tstl r0
   0x92cb9c <recog_1(rtx, rtx, int*)+418>:      
    beql 0x92cba6 <recog_1(rtx, rtx, int*)+428>
   0x92cb9e <recog_1(rtx, rtx, int*)+420>:      movl $0x2b,0xffffff70(fp)
   0x92cba3 <recog_1(rtx, rtx, int*)+425>:      
    brw 0x92df4b <recog_1(rtx, rtx, int*)+5457>
   0x92cba6 <recog_1(rtx, rtx, int*)+428>:      movl 0x4(ap),r0
   0x92cbaa <recog_1(rtx, rtx, int*)+432>:      movl 0x8(r0),0xffffffdc(fp)
   0x92cbaf <recog_1(rtx, rtx, int*)+437>:      movl 0xffffffdc(fp),r0
   0x92cbb3 <recog_1(rtx, rtx, int*)+441>:      movl 0x8(r0),0xffffffe0(fp)
   0x92cbb8 <recog_1(rtx, rtx, int*)+446>:      
    brb 0x92cb50 <recog_1(rtx, rtx, int*)+342>
   0x92cbba <recog_1(rtx, rtx, int*)+448>:      
    movab *0xef4424 <_GLOBAL_OFFSET_TABLE_+3380>,r0
   0x92cbc1 <recog_1(rtx, rtx, int*)+455>:      movab 0x308(r0),r0
   0x92cbc6 <recog_1(rtx, rtx, int*)+460>:      movl (r0),r0
   0x92cbc9 <recog_1(rtx, rtx, int*)+463>:      tstl r0
   0x92cbcb <recog_1(rtx, rtx, int*)+465>:      
    beql 0x92cbd5 <recog_1(rtx, rtx, int*)+475>
   0x92cbcd <recog_1(rtx, rtx, int*)+467>:      movl $0x2c,0xffffff70(fp)
   0x92cbd2 <recog_1(rtx, rtx, int*)+472>:      
    brw 0x92df4b <recog_1(rtx, rtx, int*)+5457>
   0x92cbd5 <recog_1(rtx, rtx, int*)+475>:      movl 0x4(ap),r0
   0x92cbd9 <recog_1(rtx, rtx, int*)+479>:      movl 0x4(r0),0xffffffdc(fp)
   0x92cbde <recog_1(rtx, rtx, int*)+484>:      
    brw 0x92ca33 <recog_1(rtx, rtx, int*)+57>
   0x92cbe1 <recog_1(rtx, rtx, int*)+487>:      movl 0xffffffdc(fp),r0
   0x92cbe5 <recog_1(rtx, rtx, int*)+491>:      movl 0x4(r0),0xffffffe0(fp)
   0x92cbea <recog_1(rtx, rtx, int*)+496>:      movl 0xffffffe0(fp),r0
   0x92cbee <recog_1(rtx, rtx, int*)+500>:      movb 0x2(r0),r0
   0x92cbf2 <recog_1(rtx, rtx, int*)+504>:      movzbl r0,r0
   0x92cbf5 <recog_1(rtx, rtx, int*)+507>:      movl r0,0xffffff74(fp)
   0x92cbfa <recog_1(rtx, rtx, int*)+512>:      cmpl 0xffffff74(fp),$0x4
   0x92cbff <recog_1(rtx, rtx, int*)+517>:      
    bneq 0x92cc04 <recog_1(rtx, rtx, int*)+522>
   0x92cc01 <recog_1(rtx, rtx, int*)+519>:      
    brw 0x92ce78 <recog_1(rtx, rtx, int*)+1150>
   0x92cc04 <recog_1(rtx, rtx, int*)+522>:      cmpl 0xffffff74(fp),$0x6
   0x92cc09 <recog_1(rtx, rtx, int*)+527>:      
    beql 0x92cc0e <recog_1(rtx, rtx, int*)+532>
   0x92cc0b <recog_1(rtx, rtx, int*)+529>:      
    brw 0x92df46 <recog_1(rtx, rtx, int*)+5452>
   0x92cc0e <recog_1(rtx, rtx, int*)+532>:      pushl $0x6
   0x92cc10 <recog_1(rtx, rtx, int*)+534>:      pushl 0xffffffe0(fp)
   0x92cc13 <recog_1(rtx, rtx, int*)+537>:      
    calls $0x2,0x671620 <register_operand(rtx_def*, machine_mode)>
   0x92cc1a <recog_1(rtx, rtx, int*)+544>:      clrb 0xffffff7b(fp)
   0x92cc1e <recog_1(rtx, rtx, int*)+548>:      tstl r0
   0x92cc20 <recog_1(rtx, rtx, int*)+550>:      
    beql 0x92cc27 <recog_1(rtx, rtx, int*)+557>
   0x92cc22 <recog_1(rtx, rtx, int*)+552>:      movb $0x1,0xffffff7b(fp)
   0x92cc27 <recog_1(rtx, rtx, int*)+557>:      tstb 0xffffff7b(fp)
   0x92cc2b <recog_1(rtx, rtx, int*)+561>:      
    bneq 0x92cc30 <recog_1(rtx, rtx, int*)+566>
   0x92cc2d <recog_1(rtx, rtx, int*)+563>:      
    brw 0x92df46 <recog_1(rtx, rtx, int*)+5452>
   0x92cc30 <recog_1(rtx, rtx, int*)+566>:      
    movl 0xffffffe0(fp),*0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>
   0x92cc38 <recog_1(rtx, rtx, int*)+574>:      movl 0xffffffdc(fp),r0
   0x92cc3c <recog_1(rtx, rtx, int*)+578>:      movl 0x8(r0),0xffffffe0(fp)
   0x92cc41 <recog_1(rtx, rtx, int*)+583>:      pushl $0x4
   0x92cc43 <recog_1(rtx, rtx, int*)+585>:      pushl 0xffffffe0(fp)
   0x92cc46 <recog_1(rtx, rtx, int*)+588>:      
    calls $0x2,0x66fefe <const_int_operand(rtx_def*, machine_mode)>
   0x92cc4d <recog_1(rtx, rtx, int*)+595>:      clrb 0xffffff7c(fp)
   0x92cc51 <recog_1(rtx, rtx, int*)+599>:      tstl r0
   0x92cc53 <recog_1(rtx, rtx, int*)+601>:      
    beql 0x92cc5a <recog_1(rtx, rtx, int*)+608>
   0x92cc55 <recog_1(rtx, rtx, int*)+603>:      movb $0x1,0xffffff7c(fp)
   0x92cc5a <recog_1(rtx, rtx, int*)+608>:      tstb 0xffffff7c(fp)
   0x92cc5e <recog_1(rtx, rtx, int*)+612>:      
    beql 0x92cc70 <recog_1(rtx, rtx, int*)+630>
   0x92cc60 <recog_1(rtx, rtx, int*)+614>:      
    movab *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,r0
   0x92cc67 <recog_1(rtx, rtx, int*)+621>:      addl2 $0x4,r0
   0x92cc6a <recog_1(rtx, rtx, int*)+624>:      movl 0xffffffe0(fp),(r0)
   0x92cc6e <recog_1(rtx, rtx, int*)+628>:      
    brb 0x92cca3 <recog_1(rtx, rtx, int*)+681>
   0x92cc70 <recog_1(rtx, rtx, int*)+630>:      pushl $0x4
   0x92cc72 <recog_1(rtx, rtx, int*)+632>:      pushl 0xffffffe0(fp)
   0x92cc75 <recog_1(rtx, rtx, int*)+635>:      
    calls $0x2,0x670072 <general_operand(rtx_def*, machine_mode)>
   0x92cc7c <recog_1(rtx, rtx, int*)+642>:      clrb 0xffffff7d(fp)
   0x92cc80 <recog_1(rtx, rtx, int*)+646>:      tstl r0
   0x92cc82 <recog_1(rtx, rtx, int*)+648>:      
    beql 0x92cc89 <recog_1(rtx, rtx, int*)+655>
   0x92cc84 <recog_1(rtx, rtx, int*)+650>:      movb $0x1,0xffffff7d(fp)
   0x92cc89 <recog_1(rtx, rtx, int*)+655>:      tstb 0xffffff7d(fp)
   0x92cc8d <recog_1(rtx, rtx, int*)+659>:      
    bneq 0x92cc92 <recog_1(rtx, rtx, int*)+664>
   0x92cc8f <recog_1(rtx, rtx, int*)+661>:      
    brw 0x92df46 <recog_1(rtx, rtx, int*)+5452>
   0x92cc92 <recog_1(rtx, rtx, int*)+664>:      
    movab *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,r0
   0x92cc99 <recog_1(rtx, rtx, int*)+671>:      addl2 $0x4,r0
   0x92cc9c <recog_1(rtx, rtx, int*)+674>:      movl 0xffffffe0(fp),(r0)
   0x92cca0 <recog_1(rtx, rtx, int*)+678>:      
    brw 0x92ce03 <recog_1(rtx, rtx, int*)+1033>
   0x92cca3 <recog_1(rtx, rtx, int*)+681>:      movl 0xffffffdc(fp),r0
   0x92cca7 <recog_1(rtx, rtx, int*)+685>:      movl 0xc(r0),0xffffffe0(fp)
   0x92ccac <recog_1(rtx, rtx, int*)+690>:      pushl $0x6
   0x92ccae <recog_1(rtx, rtx, int*)+692>:      pushl 0xffffffe0(fp)
   0x92ccb1 <recog_1(rtx, rtx, int*)+695>:      
    calls $0x2,0x66fefe <const_int_operand(rtx_def*, machine_mode)>
   0x92ccb8 <recog_1(rtx, rtx, int*)+702>:      clrb 0xffffff7e(fp)
   0x92ccbc <recog_1(rtx, rtx, int*)+706>:      tstl r0
   0x92ccbe <recog_1(rtx, rtx, int*)+708>:      
    beql 0x92ccc5 <recog_1(rtx, rtx, int*)+715>
   0x92ccc0 <recog_1(rtx, rtx, int*)+710>:      movb $0x1,0xffffff7e(fp)
   0x92ccc5 <recog_1(rtx, rtx, int*)+715>:      tstb 0xffffff7e(fp)
   0x92ccc9 <recog_1(rtx, rtx, int*)+719>:      
    beql 0x92ccdb <recog_1(rtx, rtx, int*)+737>
   0x92cccb <recog_1(rtx, rtx, int*)+721>:      
    movab *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,r0
   0x92ccd2 <recog_1(rtx, rtx, int*)+728>:      addl2 $0x8,r0
   0x92ccd5 <recog_1(rtx, rtx, int*)+731>:      movl 0xffffffe0(fp),(r0)
   0x92ccd9 <recog_1(rtx, rtx, int*)+735>:      
    brb 0x92cce6 <recog_1(rtx, rtx, int*)+748>
   0x92ccdb <recog_1(rtx, rtx, int*)+737>:      movl 0xffffffdc(fp),r0
   0x92ccdf <recog_1(rtx, rtx, int*)+741>:      movl 0x8(r0),0xffffffe0(fp)
   0x92cce4 <recog_1(rtx, rtx, int*)+746>:      
    brb 0x92cc70 <recog_1(rtx, rtx, int*)+630>
   0x92cce6 <recog_1(rtx, rtx, int*)+748>:      movl 0x4(ap),r0
   0x92ccea <recog_1(rtx, rtx, int*)+752>:      movl 0x8(r0),0xffffffdc(fp)
   0x92ccef <recog_1(rtx, rtx, int*)+757>:      pushl $0x6
   0x92ccf1 <recog_1(rtx, rtx, int*)+759>:      pushl 0xffffffdc(fp)
   0x92ccf4 <recog_1(rtx, rtx, int*)+762>:      
    calls $0x2,0x670072 <general_operand(rtx_def*, machine_mode)>
   0x92ccfb <recog_1(rtx, rtx, int*)+769>:      clrb 0xffffff7f(fp)
   0x92ccff <recog_1(rtx, rtx, int*)+773>:      tstl r0
   0x92cd01 <recog_1(rtx, rtx, int*)+775>:      
    beql 0x92cd08 <recog_1(rtx, rtx, int*)+782>
   0x92cd03 <recog_1(rtx, rtx, int*)+777>:      movb $0x1,0xffffff7f(fp)
   0x92cd08 <recog_1(rtx, rtx, int*)+782>:      tstb 0xffffff7f(fp)
   0x92cd0c <recog_1(rtx, rtx, int*)+786>:      
    beql 0x92cd1e <recog_1(rtx, rtx, int*)+804>
   0x92cd0e <recog_1(rtx, rtx, int*)+788>:      
    movab *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,r0
   0x92cd15 <recog_1(rtx, rtx, int*)+795>:      addl2 $0xc,r0
   0x92cd18 <recog_1(rtx, rtx, int*)+798>:      movl 0xffffffdc(fp),(r0)
   0x92cd1c <recog_1(rtx, rtx, int*)+802>:      
    brb 0x92cd33 <recog_1(rtx, rtx, int*)+825>
   0x92cd1e <recog_1(rtx, rtx, int*)+804>:      movl 0x4(ap),r0
   0x92cd22 <recog_1(rtx, rtx, int*)+808>:      movl 0x4(r0),0xffffffdc(fp)
   0x92cd27 <recog_1(rtx, rtx, int*)+813>:      movl 0xffffffdc(fp),r0
   0x92cd2b <recog_1(rtx, rtx, int*)+817>:      movl 0x8(r0),0xffffffe0(fp)
   0x92cd30 <recog_1(rtx, rtx, int*)+822>:      
    brw 0x92cc70 <recog_1(rtx, rtx, int*)+630>
   0x92cd33 <recog_1(rtx, rtx, int*)+825>:      
    movab *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,r0
   0x92cd3a <recog_1(rtx, rtx, int*)+832>:      addl2 $0x4,r0
   0x92cd3d <recog_1(rtx, rtx, int*)+835>:      movl (r0),r0
   0x92cd40 <recog_1(rtx, rtx, int*)+838>:      movl 0x4(r0),r0
   0x92cd44 <recog_1(rtx, rtx, int*)+842>:      cmpl r0,$0x8
   0x92cd47 <recog_1(rtx, rtx, int*)+845>:      
    beql 0x92cd5f <recog_1(rtx, rtx, int*)+869>
   0x92cd49 <recog_1(rtx, rtx, int*)+847>:      
    movab *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,r0
   0x92cd50 <recog_1(rtx, rtx, int*)+854>:      addl2 $0x4,r0
   0x92cd53 <recog_1(rtx, rtx, int*)+857>:      movl (r0),r0
   0x92cd56 <recog_1(rtx, rtx, int*)+860>:      movl 0x4(r0),r0
   0x92cd5a <recog_1(rtx, rtx, int*)+864>:      cmpl r0,$0x10
   0x92cd5d <recog_1(rtx, rtx, int*)+867>:      
    bneq 0x92cdda <recog_1(rtx, rtx, int*)+992>
   0x92cd5f <recog_1(rtx, rtx, int*)+869>:      
    movab *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,r0
   0x92cd66 <recog_1(rtx, rtx, int*)+876>:      addl2 $0x8,r0
   0x92cd69 <recog_1(rtx, rtx, int*)+879>:      movl (r0),r0
   0x92cd6c <recog_1(rtx, rtx, int*)+882>:      movl 0x4(r0),r2
   0x92cd70 <recog_1(rtx, rtx, int*)+886>:      
    movab *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,r0
   0x92cd77 <recog_1(rtx, rtx, int*)+893>:      addl2 $0x4,r0
   0x92cd7a <recog_1(rtx, rtx, int*)+896>:      movl (r0),r0
   0x92cd7d <recog_1(rtx, rtx, int*)+899>:      movl 0x4(r0),r1
   0x92cd81 <recog_1(rtx, rtx, int*)+903>:      divl3 r1,r2,r0
   0x92cd85 <recog_1(rtx, rtx, int*)+907>:      mull2 r1,r0
   0x92cd88 <recog_1(rtx, rtx, int*)+910>:      subl3 r0,r2,r0
   0x92cd8c <recog_1(rtx, rtx, int*)+914>:      tstl r0
   0x92cd8e <recog_1(rtx, rtx, int*)+916>:      
    bneq 0x92cdda <recog_1(rtx, rtx, int*)+992>
   0x92cd90 <recog_1(rtx, rtx, int*)+918>:      
    movl *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,r0
   0x92cd97 <recog_1(rtx, rtx, int*)+925>:      movw (r0),r0
   0x92cd9a <recog_1(rtx, rtx, int*)+928>:      movzwl r0,r0
   0x92cd9d <recog_1(rtx, rtx, int*)+931>:      cmpl r0,$0x26
   0x92cda0 <recog_1(rtx, rtx, int*)+934>:      
    beql 0x92cdd4 <recog_1(rtx, rtx, int*)+986>
   0x92cda2 <recog_1(rtx, rtx, int*)+936>:      
    movl *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,r0
   0x92cda9 <recog_1(rtx, rtx, int*)+943>:      pushl r0
   0x92cdab <recog_1(rtx, rtx, int*)+945>:      
    calls $0x1,0x92c99e <get_mem_attrs(const_rtx)>
=> 0x92cdb0 <recog_1(rtx, rtx, int*)+950>:      movb 0x14(r0),r0
   0x92cdb4 <recog_1(rtx, rtx, int*)+954>:      movzbl r0,r1
   0x92cdb7 <recog_1(rtx, rtx, int*)+957>:      
    movl *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,r0
   0x92cdbe <recog_1(rtx, rtx, int*)+964>:      movl 0x4(r0),r0
   0x92cdc2 <recog_1(rtx, rtx, int*)+968>:      pushl r1
   0x92cdc4 <recog_1(rtx, rtx, int*)+970>:      pushl r0
   0x92cdc6 <recog_1(rtx, rtx, int*)+972>:      
    calls $0x2,0x66ddfe <mode_dependent_address_p(rtx_def*, unsigned char)>
   0x92cdcd <recog_1(rtx, rtx, int*)+979>:      xorb2 $0x1,r0
   0x92cdd0 <recog_1(rtx, rtx, int*)+982>:      tstb r0
   0x92cdd2 <recog_1(rtx, rtx, int*)+984>:      
    beql 0x92cdda <recog_1(rtx, rtx, int*)+992>
   0x92cdd4 <recog_1(rtx, rtx, int*)+986>:      movb $0x1,0xffffff80(fp)
   0x92cdd8 <recog_1(rtx, rtx, int*)+990>:      
    brb 0x92cddd <recog_1(rtx, rtx, int*)+995>
   0x92cdda <recog_1(rtx, rtx, int*)+992>:      clrb 0xffffff80(fp)
   0x92cddd <recog_1(rtx, rtx, int*)+995>:      movb 0xffffff80(fp),r0
   0x92cde1 <recog_1(rtx, rtx, int*)+999>:      tstb r0
   0x92cde3 <recog_1(rtx, rtx, int*)+1001>:     
    beql 0x92cdee <recog_1(rtx, rtx, int*)+1012>
   0x92cde5 <recog_1(rtx, rtx, int*)+1003>:     movzbl $0x64,0xffffff70(fp)
   0x92cdeb <recog_1(rtx, rtx, int*)+1009>:     
    brw 0x92df4b <recog_1(rtx, rtx, int*)+5457>
   0x92cdee <recog_1(rtx, rtx, int*)+1012>:     movl 0x4(ap),r0
   0x92cdf2 <recog_1(rtx, rtx, int*)+1016>:     movl 0x4(r0),0xffffffdc(fp)
   0x92cdf7 <recog_1(rtx, rtx, int*)+1021>:     movl 0xffffffdc(fp),r0
   0x92cdfb <recog_1(rtx, rtx, int*)+1025>:     movl 0x8(r0),0xffffffe0(fp)
   0x92ce00 <recog_1(rtx, rtx, int*)+1030>:     
    brw 0x92cc70 <recog_1(rtx, rtx, int*)+630>
   0x92ce03 <recog_1(rtx, rtx, int*)+1033>:     movl 0xffffffdc(fp),r0
   0x92ce07 <recog_1(rtx, rtx, int*)+1037>:     movl 0xc(r0),0xffffffe0(fp)
   0x92ce0c <recog_1(rtx, rtx, int*)+1042>:     pushl $0x6
   0x92ce0e <recog_1(rtx, rtx, int*)+1044>:     pushl 0xffffffe0(fp)
   0x92ce11 <recog_1(rtx, rtx, int*)+1047>:     
    calls $0x2,0x670072 <general_operand(rtx_def*, machine_mode)>
   0x92ce18 <recog_1(rtx, rtx, int*)+1054>:     clrb 0xffffff81(fp)
   0x92ce1b <recog_1(rtx, rtx, int*)+1057>:     tstl r0
   0x92ce1d <recog_1(rtx, rtx, int*)+1059>:     
    beql 0x92ce23 <recog_1(rtx, rtx, int*)+1065>
   0x92ce1f <recog_1(rtx, rtx, int*)+1061>:     movb $0x1,0xffffff81(fp)
   0x92ce23 <recog_1(rtx, rtx, int*)+1065>:     tstb 0xffffff81(fp)
   0x92ce26 <recog_1(rtx, rtx, int*)+1068>:     
    bneq 0x92ce2b <recog_1(rtx, rtx, int*)+1073>
   0x92ce28 <recog_1(rtx, rtx, int*)+1070>:     
    brw 0x92df46 <recog_1(rtx, rtx, int*)+5452>
   0x92ce2b <recog_1(rtx, rtx, int*)+1073>:     
    movab *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,r0
   0x92ce32 <recog_1(rtx, rtx, int*)+1080>:     addl2 $0x8,r0
   0x92ce35 <recog_1(rtx, rtx, int*)+1083>:     movl 0xffffffe0(fp),(r0)
   0x92ce39 <recog_1(rtx, rtx, int*)+1087>:     movl 0x4(ap),r0
   0x92ce3d <recog_1(rtx, rtx, int*)+1091>:     movl 0x8(r0),0xffffffdc(fp)
   0x92ce42 <recog_1(rtx, rtx, int*)+1096>:     pushl $0x6
   0x92ce44 <recog_1(rtx, rtx, int*)+1098>:     pushl 0xffffffdc(fp)
   0x92ce47 <recog_1(rtx, rtx, int*)+1101>:     
    calls $0x2,0x670072 <general_operand(rtx_def*, machine_mode)>
   0x92ce4e <recog_1(rtx, rtx, int*)+1108>:     clrb 0xffffff82(fp)
   0x92ce51 <recog_1(rtx, rtx, int*)+1111>:     tstl r0
   0x92ce53 <recog_1(rtx, rtx, int*)+1113>:     
    beql 0x92ce59 <recog_1(rtx, rtx, int*)+1119>
   0x92ce55 <recog_1(rtx, rtx, int*)+1115>:     movb $0x1,0xffffff82(fp)
   0x92ce59 <recog_1(rtx, rtx, int*)+1119>:     tstb 0xffffff82(fp)
   0x92ce5c <recog_1(rtx, rtx, int*)+1122>:     
    bneq 0x92ce61 <recog_1(rtx, rtx, int*)+1127>
   0x92ce5e <recog_1(rtx, rtx, int*)+1124>:     
    brw 0x92df46 <recog_1(rtx, rtx, int*)+5452>
   0x92ce61 <recog_1(rtx, rtx, int*)+1127>:     
    movab *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,r0
   0x92ce68 <recog_1(rtx, rtx, int*)+1134>:     addl2 $0xc,r0
   0x92ce6b <recog_1(rtx, rtx, int*)+1137>:     movl 0xffffffdc(fp),(r0)
   0x92ce6f <recog_1(rtx, rtx, int*)+1141>:     movzbl $0x70,0xffffff70(fp)
   0x92ce75 <recog_1(rtx, rtx, int*)+1147>:     
    brw 0x92df4b <recog_1(rtx, rtx, int*)+5457>
   0x92ce78 <recog_1(rtx, rtx, int*)+1150>:     pushl $0x4
   0x92ce7a <recog_1(rtx, rtx, int*)+1152>:     pushl 0xffffffe0(fp)
   0x92ce7d <recog_1(rtx, rtx, int*)+1155>:     
    calls $0x2,0x67131e <memory_operand(rtx_def*, machine_mode)>
   0x92ce84 <recog_1(rtx, rtx, int*)+1162>:     clrb 0xffffff83(fp)
   0x92ce87 <recog_1(rtx, rtx, int*)+1165>:     tstl r0
   0x92ce89 <recog_1(rtx, rtx, int*)+1167>:     
    beql 0x92ce8f <recog_1(rtx, rtx, int*)+1173>
   0x92ce8b <recog_1(rtx, rtx, int*)+1169>:     movb $0x1,0xffffff83(fp)
   0x92ce8f <recog_1(rtx, rtx, int*)+1173>:     tstb 0xffffff83(fp)
   0x92ce92 <recog_1(rtx, rtx, int*)+1176>:     
    bneq 0x92ce97 <recog_1(rtx, rtx, int*)+1181>
   0x92ce94 <recog_1(rtx, rtx, int*)+1178>:     
    brw 0x92df46 <recog_1(rtx, rtx, int*)+5452>
   0x92ce97 <recog_1(rtx, rtx, int*)+1181>:     
    movl 0xffffffe0(fp),*0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>
   0x92ce9f <recog_1(rtx, rtx, int*)+1189>:     movl 0xffffffdc(fp),r0
   0x92cea3 <recog_1(rtx, rtx, int*)+1193>:     movl 0x8(r0),0xffffffe0(fp)
[...] and a bit more

The generated code this seems to happen in is:

214      L508: ATTRIBUTE_UNUSED_LABEL
215       if (
216     #line 781 "../../gcc-4.8.1/gcc/config/vax/vax.md"
217     ((INTVAL (operands[1]) == 8 || INTVAL (operands[1]) == 16)
218        && INTVAL (operands[2]) % INTVAL (operands[1]) == 0
219        && (REG_P (operands[0])
220            || ! mode_dependent_address_p (XEXP (operands[0], 0),
221                                            MEM_ADDR_SPACE (operands[0])))))
222         {
223           return 100;  /* *vax.md:776 */
224         }
225       x1 = XEXP (x0, 0);
226       x2 = XEXP (x1, 1);
227       goto L588;


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/58442] bootstrapping vax crashes on NetBSD
  2013-09-17 13:51 [Bug target/58442] New: bootstrapping vax crashes on NetBSD martin at netbsd dot org
                   ` (2 preceding siblings ...)
  2013-09-18  7:23 ` martin at netbsd dot org
@ 2013-09-19 20:43 ` martin at netbsd dot org
  2013-09-23  8:06 ` martin at netbsd dot org
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: martin at netbsd dot org @ 2013-09-19 20:43 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58442

--- Comment #4 from Martin Husemann <martin at netbsd dot org> ---
I stared at the assembly a bit more (but my vax fu is weak):

we are in the last line of

216     #line 781 "../../gcc-4.8.1/gcc/config/vax/vax.md"
217     ((INTVAL (operands[1]) == 8 || INTVAL (operands[1]) == 16)
218        && INTVAL (operands[2]) % INTVAL (operands[1]) == 0
219        && (REG_P (operands[0])
220            || ! mode_dependent_address_p (XEXP (operands[0], 0),
221                                            MEM_ADDR_SPACE (operands[0])))))

and doing:

   0x92cda2 <recog_1(rtx, rtx, int*)+936>:
    movl *0xef3cfc <_GLOBAL_OFFSET_TABLE_+1548>,r0

this is r0 = operands[0]

MEM_ADDR_SPACE(RTX) is get_mem_attrs (RTX)->addrspace) so we do the call:

   0x92cda9 <recog_1(rtx, rtx, int*)+943>:      pushl r0
   0x92cdab <recog_1(rtx, rtx, int*)+945>:
    calls $0x1,0x92c99e <get_mem_attrs(const_rtx)>

and apparently get_mem_attrs(operand[0]) returned 4, which we then deref to
->addrspace and crash.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/58442] bootstrapping vax crashes on NetBSD
  2013-09-17 13:51 [Bug target/58442] New: bootstrapping vax crashes on NetBSD martin at netbsd dot org
                   ` (3 preceding siblings ...)
  2013-09-19 20:43 ` martin at netbsd dot org
@ 2013-09-23  8:06 ` martin at netbsd dot org
  2013-09-23 14:03 ` martin at netbsd dot org
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: martin at netbsd dot org @ 2013-09-23  8:06 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58442

--- Comment #5 from Martin Husemann <martin at netbsd dot org> ---
Just as a sanity check: I verified that the natively generated insn-recog.c is
the same as one cross compiled on an amd64 host.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/58442] bootstrapping vax crashes on NetBSD
  2013-09-17 13:51 [Bug target/58442] New: bootstrapping vax crashes on NetBSD martin at netbsd dot org
                   ` (4 preceding siblings ...)
  2013-09-23  8:06 ` martin at netbsd dot org
@ 2013-09-23 14:03 ` martin at netbsd dot org
  2013-10-21  9:43 ` martin at netbsd dot org
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: martin at netbsd dot org @ 2013-09-23 14:03 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58442

--- Comment #6 from Martin Husemann <martin at netbsd dot org> ---
To verify, I instrumented get_mem_attrs:

static inline struct mem_attrs *
get_mem_attrs (const_rtx x)
{    
  struct mem_attrs *attrs;

  attrs = MEM_ATTRS (x);

  attrs = MEM_ATTRS (x);
  if (!attrs) {
    attrs = mode_mem_attrs[(int) GET_MODE (x)];
    if ((unsigned long)attrs < 1024) {
      fprintf(stderr, "ooops, mode_mem_attrs are bogus: %p mode %d\n", attrs,
G$
      debug_rtx(x);
    }
  } else if ((unsigned long)attrs < 1024) {
    fprintf(stderr, "ooops, bogus rtx mem attrs: %p\n", attrs);
    debug_rtx(x);
  }

  return attrs;
}

and indeed this fires:

ooops, bogus rtx mem attrs: 0x4
(subreg:SI (reg/v:DI 71 [ __s ]) 4)
In file included from
/usr/pkgobj/lang/gcc48/work/build/vax--netbsdelf/libstdc++-v3/include/bits/locale_facets_nonio.h:1903:0,
                 from
/usr/pkgobj/lang/gcc48/work/build/vax--netbsdelf/libstdc++-v3/include/locale:41,
                 from
../../../../../gcc-4.8.1/libstdc++-v3/src/c++98/locale-inst.cc:29:
...


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/58442] bootstrapping vax crashes on NetBSD
  2013-09-17 13:51 [Bug target/58442] New: bootstrapping vax crashes on NetBSD martin at netbsd dot org
                   ` (5 preceding siblings ...)
  2013-09-23 14:03 ` martin at netbsd dot org
@ 2013-10-21  9:43 ` martin at netbsd dot org
  2013-10-21  9:53 ` martin at netbsd dot org
  2013-10-23 13:26 ` martin at netbsd dot org
  8 siblings, 0 replies; 10+ messages in thread
From: martin at netbsd dot org @ 2013-10-21  9:43 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58442

--- Comment #7 from Martin Husemann <martin at netbsd dot org> ---
I can reproduce the same crash on a different input file with a amd64 -> vax
cross compiler (so we can drop the theory that a miscompiled recog_1 function
causes this).


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/58442] bootstrapping vax crashes on NetBSD
  2013-09-17 13:51 [Bug target/58442] New: bootstrapping vax crashes on NetBSD martin at netbsd dot org
                   ` (6 preceding siblings ...)
  2013-10-21  9:43 ` martin at netbsd dot org
@ 2013-10-21  9:53 ` martin at netbsd dot org
  2013-10-23 13:26 ` martin at netbsd dot org
  8 siblings, 0 replies; 10+ messages in thread
From: martin at netbsd dot org @ 2013-10-21  9:53 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58442

--- Comment #8 from Martin Husemann <martin at netbsd dot org> ---
And apparently same cause:
ooops, bogus rtx mem attrs: 0x4
(subreg:SI (reg/v:DI 70 [ xtime ]) 4)


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/58442] bootstrapping vax crashes on NetBSD
  2013-09-17 13:51 [Bug target/58442] New: bootstrapping vax crashes on NetBSD martin at netbsd dot org
                   ` (7 preceding siblings ...)
  2013-10-21  9:53 ` martin at netbsd dot org
@ 2013-10-23 13:26 ` martin at netbsd dot org
  8 siblings, 0 replies; 10+ messages in thread
From: martin at netbsd dot org @ 2013-10-23 13:26 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58442

--- Comment #9 from Martin Husemann <martin at netbsd dot org> ---
Please correct me if I am wrong, but in the bitfield cotexts in vax.md there
are multiple places with similar constructs like:

219        && (REG_P (operands[0])
220            || ! mode_dependent_address_p (XEXP (operands[0], 0),
221                                            MEM_ADDR_SPACE (operands[0])))))

If I read the code correctly, MEM_ADDR_SPACE() might only be called if MEM_P()
is true. The expression at hand is a SUBREG, so neither REG_P() nor MEM_P() is
true, and we end up invoking MEM_ADDR_SPACE() and should cause a call to
rtl_check_failed_code1(), causing an internal error and abort. No clue why that
fails (and how).

I do not understand VAX good enough, but as THE cisc arch would expect the
moves generated here to work for subregs as well - so maybe we need to check
for REG_P() || SUBREG_P(), where SUBREG_P would be new (GET_CODE(X) ==
SUBRECT)?


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2013-10-23 13:26 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-17 13:51 [Bug target/58442] New: bootstrapping vax crashes on NetBSD martin at netbsd dot org
2013-09-17 13:54 ` [Bug target/58442] " martin at netbsd dot org
2013-09-17 17:34 ` jbglaw@lug-owl.de
2013-09-18  7:23 ` martin at netbsd dot org
2013-09-19 20:43 ` martin at netbsd dot org
2013-09-23  8:06 ` martin at netbsd dot org
2013-09-23 14:03 ` martin at netbsd dot org
2013-10-21  9:43 ` martin at netbsd dot org
2013-10-21  9:53 ` martin at netbsd dot org
2013-10-23 13:26 ` martin at netbsd dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).