Problems building on HP-UX 11.31/IA

Albert Chin gmp-bugs at mlists.thewrittenword.com
Mon Aug 26 03:34:49 CEST 2013


On Sun, Aug 25, 2013 at 06:48:06PM +0200, Marc Glisse wrote:
> On Fri, 23 Aug 2013, Albert Chin wrote:
>
> >(Accidentally sent to gmp-devel).
> >
> >I tried building gmp-5.1.2 on HP-UX 11.31/IA and ran into a problem:
> > $ tar Jxf gmp-5.1.2.tar.xz
> > $ cd gmp-5.1.2
> > gmp-5.1.2$ ./configure M4=/opt/fsw/m414/bin/gm4 --enable-cxx
> > ...
> >   Version:           GNU MP 5.1.2
> >   Host type:         itanium2-hp-hpux11.31
> >   ABI:               32
> >   Install prefix:    /usr/local
> >   Compiler:          cc
> >   Static libraries:  yes
> >   Shared libraries:  yes
> > gmp-5.1.2$ gmake
> > ...
> > /opt/fsw/m414/bin/gm4  -DHAVE_CONFIG_H -D__GMP_WITHIN_GMP -DOPERATION_add_n -DPIC add_n.asm >tmp-add_n.s
> >  cc -c -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_add_n +O3 tmp-add_n.s +Z -DPIC -o .libs/add_n.o
> > tmp-add_n.s:116: error 4032: must be in a bundle
>
> it seems that you are using HP's compiler. Does it work better if
> you use gcc and more precisely the GNU binutils? Just checking if
> this is a minor syntax difference between the two asm or something
> worse.

I think GCC works but our goal is to use the HP compiler and
assembler.

> Does it help if you manually add some '{' and '}' in the obvious
> places in mpn/ia64/aors_n.asm ? (assuming this is the file
> tmp-add_n.s is generated from)

Thanks. That helped things out. I've attached my patch to
mpn/ia64/aors_n.asm and the tmp-add_n.s generated by it. With these
changes, we're down to the following failures:
 cc -c -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_add_n +O3 tmp-add_n.s +Z -DPIC -o .libs/add_n.o
tmp-add_n.s:188: error 4119: invalid integer constant
tmp-add_n.s:199: error 4001: syntax error
tmp-add_n.s:225: error 4119: invalid integer constant
tmp-add_n.s:235: error 4001: syntax error
tmp-add_n.s:268: error 4119: invalid integer constant
tmp-add_n.s:278: error 4001: syntax error
tmp-add_n.s:364: error 4003: invalid explicit bundle
tmp-add_n.s:441: warning 4045: redundant section directive
tmp-add_n.s:599: error 4119: invalid integer constant
tmp-add_n.s:604: error 4001: syntax error
tmp-add_n.s:655: error 4003: invalid explicit bundle
tmp-add_n.s:688: error 4003: invalid explicit bundle
gmake: *** [add_n.lo] Error 1

Analyzing the failures:
  tmp-add_n.s:188: error 4119: invalid integer constant
    }{.mmb; nop     0
            nop     0
      (p15) br      1f                 <---- Changed to an 31, the
                                             int representation,
                                             and it worked
            ;;

  tmp-add_n.s:199: error 4001: syntax error
            br      .Lcj1
    }
    1:                                 <---- Why? Replacing this
                                             with a `.L<label>'
                                             works but is it the
                                             right thing to do?
     {.mmi; ld8     r26 = [r34], 8
            ld8     r16 = [r33], 8
            shr.u   r35 = r35, 3
            ;;

  tmp-add_n.s:364: error 4003: invalid explicit bundle
    }{.mmi; ld8     r24 = [r34], 8
            cmp.ltu p6, p0 = r28, r10
            ld8     r14 = [r33], 8     <---- Why?
    }{.mbb; add     r29 = r15, r25
      (p15) br      .Lc5
            br      .Lend
    }

  tmp-add_n.s:655: error 4003: invalid explicit bundle
     {.mmi; add     r20 = 500, r33
            add     r21 = 500, r34
            mov     ar.lc = r35
            ld8     r25 = [r34], 8     <---- Why?
            ld8     r15 = [r33], 8
            nop     0
            ;;

  tmp-add_n.s:688: error 4003: invalid explicit bundle
    }{.mmi; add     r20 = 500, r33
            add     r21 = 500, r34
            add     r3 = 16, r32
            ld8     r27 = [r34], 8     <---- Why?
            ld8     r17 = [r33], 8
            nop     0
            ;;

-- 
albert chin (china at thewrittenword.com)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: aors_n.asm.diff
Type: text/x-diff
Size: 19576 bytes
Desc: not available
URL: <http://gmplib.org/list-archives/gmp-bugs/attachments/20130825/4e20cb4e/attachment-0001.bin>
-------------- next part --------------



































































  
  
  
  
  
  
  







   
   
   

 




	
	.text
	.align	32
	.global	__gmpn_add_nc#
	.proc	__gmpn_add_nc#
__gmpn_add_nc:
	.prologue
	.save	ar.lc, r2
	.body

	addp4	r32 = 0, r32		
	addp4	r33 = 0, r33		
	addp4	r34 = 0, r34		
	zxt4	r35 = r35			
	;;


 {.mmi;	ld8	r11 = [r34], 8		
	ld8	r10 = [r33], 8		
	mov	r2 = ar.lc		
}{.mmi;	and	r14 = 7, r35		
	cmp.lt	p15, p14 = 8, r35		
	add	r35 = -6, r35		
	;;
}
 {.mmi;	add	r20 = 500, r33	
	add	r21 = 500, r34	
	mov	r23 = r36		
	;;
}{.mmi;	cmp.eq	p6, p0 = 1, r14		
	cmp.eq	p7, p0 = 2, r14		
	cmp.eq	p8, p0 = 3, r14		
}{.bbb
   (p6)	br.dptk	.Lc001			
   (p7)	br.dptk	.Lc010			
   (p8)	br.dptk	.Lc011			
	;;
}
{.mmi;	cmp.eq	p9, p0 = 4, r14		
	cmp.eq	p10, p0 = 5, r14	
	cmp.eq	p11, p0 = 6, r14	
}{.bbb
   (p9)	br.dptk	.Lc100			
  (p10)	br.dptk	.Lc101			
  (p11)	br.dptk	.Lc110			
	;;
}{.mmi;	ld8	r19 = [r34], 8		
	ld8	r18 = [r33], 8		
	cmp.ne	p13, p0 = 0, r36		
}{.mmb;	cmp.eq	p12, p0 = 7, r14	
	nop	0
  (p12)	br.dptk	.Lc111			
	;;
}

.Lc000:
 {.mmi;	ld8	r27 = [r34], 8		
	ld8	r17 = [r33], 8		
	shr.u	r35 = r35, 3		
	;;
}{.mmi;	add	r21 = 500, r34	
	ld8	r24 = [r34], 8		
	mov	ar.lc = r35		
}{.mmi;	ld8	r14 = [r33], 8		
	add	r29 = r10, r11		
	nop	0
	;;
}{.mmi;	add	r20 = 500, r33	
	ld8	r25 = [r34], 8		
	cmp.ltu	p7, p0 = r29, r10	
}{.mmi;	ld8	r15 = [r33], 8		
	add	r30 = r18, r19		
	add	r3 = 8, r32		
	;;
}{.mmi;	ld8	r26 = [r34], 8		
	cmp.ltu	p8, p0 = r30, r18	
  (p13)	cmp.eq.or	p7, p0 = -1, r29	
}{.mmi;	ld8	r16 = [r33], 8		
  (p13)	add	r29 = 1, r29		
	add	r31 = r17, r27		
	;;
}{.mmi;	ld8	r27 = [r34], 8		
	cmp.ltu	p9, p0 = r31, r17		
   (p7)	cmp.eq.or	p8, p0 = -1, r30	
}{.mmb;	ld8	r17 = [r33], 8		
   (p7)	add	r30 = 1, r30		
	br	.Lm0
}


.Lc001:
 {.mmi;
  (p15)	ld8	r25 = [r34], 8		
  (p15)	ld8	r15 = [r33], 8		
	add	r28 = r10, r11		
}{.mmb;	nop	0
	nop	0
  (p15)	br	1f
	;;
}{.mmi;	cmp.ne	p9, p0 = 0, r23		
	mov	r8 = 0
	cmp.ltu	p6, p0 = r28, r10	
	;;
}{.mmb;
   (p9)	cmp.eq.or	p6, p0 = -1, r28	
   (p9)	add	r28 = 1, r28		
	br	.Lcj1			
}
1:
 {.mmi;	ld8	r26 = [r34], 8		
	ld8	r16 = [r33], 8		
	shr.u	r35 = r35, 3		
	;;
}{.mmi;	ld8	r27 = [r34], 8		
	ld8	r17 = [r33], 8		
	mov	ar.lc = r35		
}{.mmi;	nop	0
	cmp.ne	p9, p0 = 0, r23		
	nop	0
	;;
}{.mmi;	ld8	r24 = [r34], 8		
	cmp.ltu	p6, p0 = r28, r10	
	add	r3 = 16, r32		
}{.mmb;	ld8	r14 = [r33], 8		
	add	r29 = r15, r25		
	br	.Lc1			
}

.Lc010:
 {.mmi;	ld8	r24 = [r34], 8		
	ld8	r14 = [r33], 8		
	mov	r8 = 0			
}{.mmb;	add	r31 = r10, r11		
	cmp.ne	p8, p0 = 0, r23		
  (p15)	br	1f			
	;;
}{.mmi;	cmp.ltu	p9, p0 = r31, r10	
	add	r28 = r14, r24		
   (p8)	add	r31 = 1, r31		
	;;
}{.mmb;	cmp.ltu	p6, p0 = r28, r14		
   (p8)	cmp.eq.or	p9, p0 = 0, r31	
	br	.Lcj2			
}
1:
 {.mmi;	ld8	r25 = [r34], 8		
	ld8	r15 = [r33], 8		
	shr.u	r35 = r35, 3		
	;;
}{.mmi;	ld8	r26 = [r34], 8		
	ld8	r16 = [r33], 8		
	mov	ar.lc = r35		
	;;
}{.mmi;	ld8	r27 = [r34], 8		
	ld8	r17 = [r33], 8		
	cmp.ltu	p9, p0 = r31, r10	
	;;
}{.mmi;
   (p8)	cmp.eq.or	p9, p0 = -1, r31	
   (p8)	add	r31 = 1, r31		
	add	r28 = r14, r24		
}{.mmb;	add	r3 = 24, r32		
	nop	0
	br	.Lm23			
}


.Lc011:
 {.mmi;	ld8	r27 = [r34], 8		
	ld8	r17 = [r33], 8		
	shr.u	r35 = r35, 3		
}{.mmi;	add	r30 = r10, r11		
	cmp.ne	p7, p0 = 0, r23		
	nop	0
	;;
}{.mmb;	ld8	r24 = [r34], 8		
	ld8	r14 = [r33], 8		
  (p15)	br	1f			
}{.mmi;	cmp.ltu	p8, p0 = r30, r10	
	add	r31 = r17, r27		
	nop	0
	;;
}{.mmb;
   (p7)	cmp.eq.or	p8, p0 = -1, r30	
   (p7)	add	r30 = 1, r30		
	br	.Lcj3			
}
1:
 {.mmi;	ld8	r25 = [r34], 8		
	ld8	r15 = [r33], 8		
	add	r31 = r17, r27		
	;;
}{.mmi;	ld8	r26 = [r34], 8		
	ld8	r16 = [r33], 8		
	cmp.ltu	p8, p0 = r30, r10	
	;;
}{.mmi;	ld8	r27 = [r34], 8		
	cmp.ltu	p9, p0 = r31, r17		
	mov	ar.lc = r35		
}{.mmi;	ld8	r17 = [r33], 8		
   (p7)	cmp.eq.or	p8, p0 = -1, r30	
   (p7)	add	r30 = 1, r30		
	;;
}{.mmi;	add	r3 = 32, r32		
	st8	[r32] = r30, 8		
   (p8)	cmp.eq.or	p9, p0 = -1, r31	
}{.mmb;
   (p8)	add	r31 = 1, r31		
	add	r28 = r14, r24		
	br	.Lm23
}

.Lc100:
 {.mmi;	ld8	r26 = [r34], 8		
	ld8	r16 = [r33], 8		
	shr.u	r35 = r35, 3		
}{.mmi;	add	r29 = r10, r11		
	nop	0
	nop	0
	;;
}{.mmi;	ld8	r27 = [r34], 8		
	ld8	r17 = [r33], 8		
	add	r3 = 8, r32		
}{.mmi;	cmp.ne	p6, p0 = 0, r23		
	cmp.ltu	p7, p0 = r29, r10	
	nop	0
	;;
}{.mmi;	ld8	r24 = [r34], 8		
	ld8	r14 = [r33], 8		
	add	r30 = r16, r26		
}{.mmb;
   (p6)	cmp.eq.or	p7, p0 = -1, r29	
   (p6)	add	r29 = 1, r29		
  (p14)	br	.Lcj4
	;;
}{.mmi;	ld8	r25 = [r34], 8		
	ld8	r15 = [r33], 8		
	mov	ar.lc = r35		
	;;
}{.mmi;	ld8	r26 = [r34], 8		
	cmp.ltu	p8, p0 = r30, r16		
	nop	0
}{.mmi;	ld8	r16 = [r33], 8		
	nop	0
	add	r31 = r17, r27		
	;;
}{.mmi;	ld8	r27 = [r34], 8		
	cmp.ltu	p9, p0 = r31, r17		
   (p7)	cmp.eq.or	p8, p0 = -1, r30	
}{.mmb;	ld8	r17 = [r33], 8		
   (p7)	add	r30 = 1, r30		
	br	.Lm4
}


.Lc101:
 {.mmi;	ld8	r25 = [r34], 8		
	ld8	r15 = [r33], 8		
	shr.u	r35 = r35, 3		
	;;
}{.mmi;	ld8	r26 = [r34], 8		
	ld8	r16 = [r33], 8		
	mov	ar.lc = r35		
	;;
}{.mmi;	ld8	r27 = [r34], 8		
	ld8	r17 = [r33], 8		
	add	r28 = r10, r11		
}{.mmi;	cmp.ne	p9, p0 = 0, r23		
	add	r3 = 16, r32		
	nop	0
	;;
}{.mmi;	ld8	r24 = [r34], 8		
	cmp.ltu	p6, p0 = r28, r10	
	ld8	r14 = [r33], 8		
}{.mbb;	add	r29 = r15, r25		
  (p15)	br	.Lc5			
	br	.Lend			
}


.Lc110:
 {.mmi;	ld8	r24 = [r34], 8		
	ld8	r14 = [r33], 8		
	shr.u	r35 = r35, 3		
	;;
}{.mmi;	add	r20 = 500, r33	
	add	r21 = 500, r34	
	mov	ar.lc = r35		
}{.mmi;	ld8	r25 = [r34], 8		
	ld8	r15 = [r33], 8		
	add	r31 = r10, r11		
	;;
}{.mmi;	ld8	r26 = [r34], 8		
	ld8	r16 = [r33], 8		
	add	r28 = r14, r24		
}{.mmi;	cmp.ltu	p9, p0 = r31, r10	
	cmp.ne	p8, p0 = 0, r23		
	add	r3 = 24, r32		
	;;
}{.mmi;	ld8	r27 = [r34], 8		
	ld8	r17 = [r33], 8		
	nop	0
}{.mmb;
   (p8)	cmp.eq.or	p9, p0 = -1, r31	
   (p8)	add	r31 = 1, r31		
	br	.Lm67			
}


.Lc111:
 {.mmi;	ld8	r24 = [r34], 8		
	ld8	r14 = [r33], 8		
	shr.u	r35 = r35, 3		
	;;
}{.mmi;	add	r20 = 500, r33	
	ld8	r25 = [r34], 8		
	mov	ar.lc = r35		
}{.mmi;	ld8	r15 = [r33], 8		
	add	r30 = r10, r11		
	nop	0
	;;
}{.mmi;	add	r21 = 500, r34	
	ld8	r26 = [r34], 8		
	cmp.ltu	p8, p0 = r30, r10	
}{.mmi;	ld8	r16 = [r33], 8		
	add	r31 = r18, r19		
	nop	0
	;;
}{.mmi;	ld8	r27 = [r34], 8		
	cmp.ltu	p9, p0 = r31, r18	
  (p13)	cmp.eq.or	p8, p0 = -1, r30	
}{.mmi;	ld8	r17 = [r33], 8		
  (p13)	add	r30 = 1, r30		
	nop	0
	;;
}{.mmi;	add	r3 = 32, r32		
	st8	[r32] = r30, 8		
   (p8)	cmp.eq.or	p9, p0 = -1, r31	
}{.mmb;
   (p8)	add	r31 = 1, r31		
	add	r28 = r14, r24		
	br	.Lm67
}

	
	.endp	__gmpn_add_nc#



	
	.text
	.align	32
	.global	__gmpn_add_n#
	.proc	__gmpn_add_n#
__gmpn_add_n:
	.prologue
	.save	ar.lc, r2
	.body

	addp4	r32 = 0, r32		
	addp4	r33 = 0, r33		
	addp4	r34 = 0, r34		
	zxt4	r35 = r35			
	;;


 {.mmi;	ld8	r11 = [r34], 8		
	ld8	r10 = [r33], 8		
	mov	r2 = ar.lc		
}{.mmi;	and	r14 = 7, r35		
	cmp.lt	p15, p14 = 8, r35		
	add	r35 = -6, r35		
	;;
}{.mmi;	cmp.eq	p6, p0 = 1, r14		
	cmp.eq	p7, p0 = 2, r14		
	cmp.eq	p8, p0 = 3, r14		
}{.bbb
   (p6)	br.dptk	.Lb001			
   (p7)	br.dptk	.Lb010			
   (p8)	br.dptk	.Lb011			
	;;
}{.mmi;	cmp.eq	p9, p0 = 4, r14		
	cmp.eq	p10, p0 = 5, r14	
	cmp.eq	p11, p0 = 6, r14	
}{.bbb
   (p9)	br.dptk	.Lb100			
  (p10)	br.dptk	.Lb101			
  (p11)	br.dptk	.Lb110			
	;;
}{.mmi;	ld8	r19 = [r34], 8		
	ld8	r18 = [r33], 8		
	cmp.ne	p13, p0 = r0, r0	
}{.mmb;	cmp.eq	p12, p0 = 7, r14	
	mov	r23 = 0			
  (p12)	br.dptk	.Lb111			
	;;
}

.Lb000:
 {.mmi;	ld8	r27 = [r34], 8		
	ld8	r17 = [r33], 8		
	shr.u	r35 = r35, 3		
	;;
}{.mmi;	ld8	r24 = [r34], 8		
	ld8	r14 = [r33], 8		
	add	r29 = r10, r11		
	;;
}{.mmi;	ld8	r25 = [r34], 8		
	cmp.ltu	p7, p0 = r29, r10	
	mov	ar.lc = r35		
}{.mmi;	ld8	r15 = [r33], 8		
	add	r30 = r18, r19		
	add	r3 = 8, r32		
	;;
}{.mmi;	add	r20 = 500, r33
	add	r21 = 500, r34
	cmp.ltu	p8, p0 = r30, r18	
}{.mmi;	ld8	r26 = [r34], 8		
	ld8	r16 = [r33], 8		
	add	r31 = r17, r27		
	;;
}{.mmi;	ld8	r27 = [r34], 8		
	cmp.ltu	p9, p0 = r31, r17		
   (p7)	cmp.eq.or	p8, p0 = -1, r30	
}{.mmb;	ld8	r17 = [r33], 8		
   (p7)	add	r30 = 1, r30		
	br	.Lm0			
}


	.align	32
.Lb001:
 {.mmi;	add	r28 = r10, r11		
  (p15)	ld8	r25 = [r34], 8		
	mov	r8 = 0			
	;;
}{.mmb;	cmp.ltu	p6, p0 = r28, r10	
  (p15)	ld8	r15 = [r33], 8		
  (p14)	br	.Lcj1			
	;;
}{.mmi;	add	r20 = 500, r33
	add	r21 = 500, r34
	shr.u	r35 = r35, 3		
}{.mmi;	ld8	r26 = [r34], 8		
	ld8	r16 = [r33], 8		
	cmp.ltu	p6, p0 = r28, r10	
	;;
}{.mmi;	ld8	r27 = [r34], 8		
	ld8	r17 = [r33], 8		
	mov	ar.lc = r35		
	;;
}{.mmi;	ld8	r24 = [r34], 8		
	ld8	r14 = [r33], 8		
	add	r29 = r15, r25		
	;;
}{.mmi;	ld8	r25 = [r34], 8		
	cmp.ltu	p7, p0 = r29, r15		
	add	r30 = r16, r26		
}{.mmb;	ld8	r15 = [r33], 8		
	add	r3 = 16, r32		
	br	.Lm1			
}

	.align	32
.Lb010:
 {.mmi;	ld8	r24 = [r34], 8		
	ld8	r14 = [r33], 8		
	shr.u	r35 = r35, 3		
}{.mmb;	add	r31 = r10, r11		
	nop	0
  (p15)	br	.Lgt2			
	;;
}{.mmi;	cmp.ltu	p9, p0 = r31, r10	
	add	r28 = r14, r24		
	mov	r8 = 0			
	;;
}{.mmb;	nop	0
	cmp.ltu	p6, p0 = r28, r14		
	br	.Lcj2			
}
.Lgt2:
 {.mmi;	ld8	r25 = [r34], 8		
	ld8	r15 = [r33], 8		
	nop	0
	;;
}{.mmi;	add	r20 = 500, r33
	add	r21 = 500, r34
	mov	ar.lc = r35		
}{.mmi;	ld8	r26 = [r34], 8		
	ld8	r16 = [r33], 8		
	nop	0
	;;
}{.mmi;	ld8	r27 = [r34], 8		
	cmp.ltu	p9, p0 = r31, r10	
	add	r28 = r14, r24		
}{.mmb;	ld8	r17 = [r33], 8		
	add	r3 = 24, r32		
	br	.Lm23			
}

	.align	32
.Lb011:
 {.mmi;	ld8	r27 = [r34], 8		
	ld8	r17 = [r33], 8		
	add	r30 = r10, r11		
	;;
}{.mmb;	ld8	r24 = [r34], 8		
	ld8	r14 = [r33], 8		
  (p15)	br	1f			
}{.mmb;	cmp.ltu	p8, p0 = r30, r10	
	add	r31 = r17, r27		
	br	.Lcj3			
}
1:
 {.mmi;	ld8	r25 = [r34], 8		
	ld8	r15 = [r33], 8		
	shr.u	r35 = r35, 3		
	;;
}{.mmi;	add	r20 = 500, r33
	add	r21 = 500, r34
	add	r31 = r17, r27		
}{.mmi;	ld8	r26 = [r34], 8		
	ld8	r16 = [r33], 8		
	cmp.ltu	p8, p0 = r30, r10	
	;;
}{.mmi;	ld8	r27 = [r34], 8		
	cmp.ltu	p9, p0 = r31, r17		
	mov	ar.lc = r35		
}{.mmi;	ld8	r17 = [r33], 8		
	nop	0
	nop	0
	;;
}{.mmi;	add	r3 = 32, r32		
	st8	[r32] = r30, 8		
   (p8)	cmp.eq.or	p9, p0 = -1, r31	
}{.mmb;
   (p8)	add	r31 = 1, r31		
	add	r28 = r14, r24		
	br	.Lm23			
}


	.align	32
.Lb100:
 {.mmi;	ld8	r26 = [r34], 8		
	ld8	r16 = [r33], 8		
	shr.u	r35 = r35, 3		
	;;
}{.mmi;	ld8	r27 = [r34], 8		
	ld8	r17 = [r33], 8		
	add	r29 = r10, r11		
	;;
}{.mmi;	ld8	r24 = [r34], 8		
	ld8	r14 = [r33], 8		
	cmp.ltu	p7, p0 = r29, r10	
}{.mmb;	nop	0
	add	r30 = r16, r26		
  (p14)	br	.Lcj4			
	;;
}
.Lgt4:
 {.mmi;	add	r20 = 500, r33
	add	r21 = 500, r34
	mov	ar.lc = r35		
	ld8	r25 = [r34], 8		
	ld8	r15 = [r33], 8		
	nop	0
	;;
}{.mmi;	ld8	r26 = [r34], 8		
	cmp.ltu	p8, p0 = r30, r16		
	nop	0
}{.mmi;	ld8	r16 = [r33], 8		
	add	r31 = r17, r27		
	add	r3 = 8, r32		
	;;
}{.mmi;	ld8	r27 = [r34], 8		
	cmp.ltu	p9, p0 = r31, r17		
   (p7)	cmp.eq.or	p8, p0 = -1, r30	
}{.mmb;	ld8	r17 = [r33], 8		
   (p7)	add	r30 = 1, r30		
	br	.Lm4			
}


	.align	32
.Lb101:
 {.mmi;	ld8	r25 = [r34], 8		
	ld8	r15 = [r33], 8		
	shr.u	r35 = r35, 3		
	;;
}{.mmi;	ld8	r26 = [r34], 8		
	ld8	r16 = [r33], 8		
	add	r28 = r10, r11		
	;;
}{.mmi;	add	r20 = 500, r33
	add	r21 = 500, r34
	add	r3 = 16, r32		
	ld8	r27 = [r34], 8		
	ld8	r17 = [r33], 8		
	nop	0
	;;
}{.mmi;	ld8	r24 = [r34], 8		
	cmp.ltu	p6, p0 = r28, r10	
	nop	0
}{.mmb;	ld8	r14 = [r33], 8		
	add	r29 = r15, r25		
  (p14)	br	.Lcj5			
	;;
}
.Lgt5:
 {.mmi;	ld8	r25 = [r34], 8		
	cmp.ltu	p7, p0 = r29, r15		
	mov	ar.lc = r35		
}{.mmb;	ld8	r15 = [r33], 8		
	add	r30 = r16, r26		
	br	.Lm5			
}


	.align	32
.Lb110:
 {.mmi;	ld8	r24 = [r34], 8		
	ld8	r14 = [r33], 8		
	shr.u	r35 = r35, 3		
	;;
}{.mmi;	ld8	r25 = [r34], 8		
	ld8	r15 = [r33], 8		
	add	r31 = r10, r11		
	;;
}{.mmi;	add	r20 = 500, r33
	add	r21 = 500, r34
	mov	ar.lc = r35		
}{.mmi;	ld8	r26 = [r34], 8		
	ld8	r16 = [r33], 8		
	nop	0
	;;
}{.mmi;	ld8	r27 = [r34], 8		
	cmp.ltu	p9, p0 = r31, r10	
	add	r28 = r14, r24		
}{.mmb;	ld8	r17 = [r33], 8		
	add	r3 = 24, r32		
	br	.Lm67			
}


	.align	32
.Lb111:
 {.mmi;	ld8	r24 = [r34], 8		
	ld8	r14 = [r33], 8		
	shr.u	r35 = r35, 3		
	;;
}{.mmi;	ld8	r25 = [r34], 8		
	ld8	r15 = [r33], 8		
	add	r30 = r10, r11		
	;;
}{.mmi;	ld8	r26 = [r34], 8		
	cmp.ltu	p8, p0 = r30, r10	
	mov	ar.lc = r35		
}{.mmi;	ld8	r16 = [r33], 8		
	add	r31 = r18, r19		
	nop	0
	;;
}{.mmi;	add	r20 = 500, r33
	add	r21 = 500, r34
	nop	0
}{.mmi;	ld8	r27 = [r34], 8		
	ld8	r17 = [r33], 8		
	cmp.ltu	p9, p0 = r31, r18	
	;;
}{.mmi;	add	r3 = 32, r32		
	st8	[r32] = r30, 8		
   (p8)	cmp.eq.or	p9, p0 = -1, r31	
}{.mmb;
   (p8)	add	r31 = 1, r31		
	add	r28 = r14, r24		
	br	.Lm67			
}



	.align	32
.Ltop:
.Lc5:	ld8	r25 = [r34], 8		
	cmp.ltu	p7, p0 = r29, r15		
   (p9)	cmp.eq.or	p6, p0 = -1, r28	
	ld8	r15 = [r33], 8		
   (p9)	add	r28 = 1, r28		
	add	r30 = r16, r26		
	;;
.Lm5:	ld8	r26 = [r34], 8		
	cmp.ltu	p8, p0 = r30, r16		
   (p6)	cmp.eq.or	p7, p0 = -1, r29	
	ld8	r16 = [r33], 8		
   (p6)	add	r29 = 1, r29		
	add	r31 = r17, r27		
	;;
	st8	[r32] = r28, 8		
	ld8	r27 = [r34], 8		
	cmp.ltu	p9, p0 = r31, r17		
   (p7)	cmp.eq.or	p8, p0 = -1, r30	
	ld8	r17 = [r33], 8		
   (p7)	add	r30 = 1, r30		
	;;
.Lm4:	st8	[r32] = r29, 16		
	st8	[r3] = r30, 32		
   (p8)	cmp.eq.or	p9, p0 = -1, r31	
	lfetch	[r20], 64
   (p8)	add	r31 = 1, r31		
	add	r28 = r14, r24		
	;;
.Lm23:	st8	[r32] = r31, 8		
	ld8	r24 = [r34], 8		
	cmp.ltu	p6, p0 = r28, r14		
	ld8	r14 = [r33], 8		
	add	r29 = r15, r25		
	nop.b	0
	;;
.Lc1:	ld8	r25 = [r34], 8		
	cmp.ltu	p7, p0 = r29, r15		
   (p9)	cmp.eq.or	p6, p0 = -1, r28	
	ld8	r15 = [r33], 8		
   (p9)	add	r28 = 1, r28		
	add	r30 = r16, r26		
	;;
.Lm1:	ld8	r26 = [r34], 8		
	cmp.ltu	p8, p0 = r30, r16		
   (p6)	cmp.eq.or	p7, p0 = -1, r29	
	ld8	r16 = [r33], 8		
   (p6)	add	r29 = 1, r29		
	add	r31 = r17, r27		
	;;
	st8	[r32] = r28, 8		
	ld8	r27 = [r34], 8		
	cmp.ltu	p9, p0 = r31, r17		
   (p7)	cmp.eq.or	p8, p0 = -1, r30	
	ld8	r17 = [r33], 8		
   (p7)	add	r30 = 1, r30		
	;;
.Lm0:	st8	[r32] = r29, 16		
	st8	[r3] = r30, 32		
   (p8)	cmp.eq.or	p9, p0 = -1, r31	
	lfetch	[r21], 64
   (p8)	add	r31 = 1, r31		
	add	r28 = r14, r24		
	;;
.Lm67:	st8	[r32] = r31, 8		
	ld8	r24 = [r34], 8		
	cmp.ltu	p6, p0 = r28, r14		
	ld8	r14 = [r33], 8		
	add	r29 = r15, r25		
	br.cloop.dptk	.Ltop		
	;;


.Lend:
 {.mmi;
   (p9)	cmp.eq.or	p6, p0 = -1, r28	
   (p9)	add	r28 = 1, r28		
	mov	ar.lc = r2		
}
.Lcj5:
 {.mmi;	cmp.ltu	p7, p0 = r29, r15		
	add	r30 = r16, r26		
	nop	0
	;;
}{.mmi;	st8	[r32] = r28, 8		
   (p6)	cmp.eq.or	p7, p0 = -1, r29	
   (p6)	add	r29 = 1, r29		
}
.Lcj4:
 {.mmi;	cmp.ltu	p8, p0 = r30, r16		
	add	r31 = r17, r27		
	nop	0
	;;
}{.mmi;	st8	[r32] = r29, 8		
   (p7)	cmp.eq.or	p8, p0 = -1, r30	
   (p7)	add	r30 = 1, r30		
}
.Lcj3:
 {.mmi;	cmp.ltu	p9, p0 = r31, r17		
	add	r28 = r14, r24		
	nop	0
	;;
}{.mmi;	st8	[r32] = r30, 8		
   (p8)	cmp.eq.or	p9, p0 = -1, r31	
   (p8)	add	r31 = 1, r31		
}{.mmi;	cmp.ltu	p6, p0 = r28, r14		
	nop	0
	mov	r8 = 0			
	;;
}
.Lcj2:
 {.mmi;	st8	[r32] = r31, 8		
   (p9)	cmp.eq.or	p6, p0 = -1, r28	
   (p9)	add	r28 = 1, r28		
	;;
}
.Lcj1:
 {.mmb;	st8	[r32] = r28, 8		
   (p6)	mov	r8 = 1			
	br.ret.sptk.many b0		
}
	
	.endp	__gmpn_add_n#



More information about the gmp-bugs mailing list