[ELDK] Compiler bug in eldk-4.2 for ppc_4xxFP-gcc

Steven A. Falco sfalco at harris.com
Wed Jul 9 21:10:36 CEST 2008


I have found a bug in gcc as supplied in eldk-4.2 for ppc_4xxFP-gcc.  I noticed
that the dumpe2fs program segfaulted on my sequoia board (running with nfs as
the rootfs).  After a lot of detective work, I have produced a small program
that illustrates the problem.

I've attached the C code, a header file, the makefile, and a dump of
the object code.  The bug is that the compiler collapses two "if" tests
together, but in doing so, it tests a value before assigning to it.

The two "if" statements are:

	if (!*pp)		/* from the header file */
	if (!bb->list) {	/* from the C file */

The following section of the dump shows the problem (this correlates to
the second malloc in routine make_u32_list():

100004c4:	48 04 05 d5 	bl      10040a98 <malloc at plt>
100004c8:	81 61 00 08 	lwz     r11,8(r1)
100004cc:	7c 60 fe 70 	srawi   r0,r3,31
100004d0:	7c 09 1a 78 	xor     r9,r0,r3
100004d4:	83 eb 00 0c 	lwz     r31,12(r11)	/* copies bb->list into r31 too early */
100004d8:	7d 29 00 50 	subf    r9,r9,r0
100004dc:	3c 00 80 d4 	lis     r0,-32556
100004e0:	7d 3d fe 70 	srawi   r29,r9,31
100004e4:	60 00 48 ba 	ori     r0,r0,18618
100004e8:	2f 9f 00 00 	cmpwi   cr7,r31,0	/* tests uninitialized version of bb->list */
100004ec:	7f bd 00 38 	and     r29,r29,r0
100004f0:	3d 3d 7f 2c 	addis   r9,r29,32556
100004f4:	90 7c 00 0c 	stw     r3,12(r28)	/* bb->list finally receives malloc pointer here */

At 100004c4 we call malloc, and the return value is in r3.  The "if"
test appears at 100004e8 and checks r31.  Looking back at 100004d4 we
see bb->list is loaded into r31.  However, r3 is not loaded into bb->list
until 100004f4, long after bb->list has been used.

I'm reporting this on the eldk list.  If the bug should be posted
elsewhere, please let me know.  Full source and dump follow.

	Steve Falco



Here is the C code:

#include "ext2fs.h"

static errcode_t make_u32_list(int size, __u32 *list, ext2_u32_list *ret)
{
	ext2_u32_list	bb;
	errcode_t	retval;
	
	retval = ext2fs_get_mem(sizeof(struct ext2_struct_u32_list), &bb);

	retval = ext2fs_get_mem(size * sizeof(blk_t), &bb->list);
	if (!bb->list) {
		ext2fs_free_mem(&bb);
		return retval;
	}
	*ret = bb;
	return 0;
}

errcode_t ext2fs_badblocks_list_create(ext2_badblocks_list *ret, int size)
{
	return make_u32_list(size, 0, (ext2_badblocks_list *) ret);
}

main()
{
	badblocks_list		bb_list = 0;

	ext2fs_badblocks_list_create(&bb_list, 500);

	fprintf(stderr, "bb_list %08x, bb_list->list %08x\n",
			(int)bb_list, (int)bb_list->list);
}

There is also a header file with inline functions:

#ifndef _EXT_
#define _EXT_

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define _INLINE_ extern __inline__

#define EXT2_ET_NO_MEMORY                        (2133571398L)
#define EXT2_ET_MAGIC_BADBLOCKS_LIST             (2133571330L)

typedef long errcode_t;
typedef       unsigned int    __u32;
typedef __u32             blk_t;

struct ext2_struct_u32_list {
	int	magic;
	int	num;
	int	size;
	__u32	*list;
	int	badblocks_flags;
};

typedef struct ext2_struct_u32_list *ext2_u32_list;

struct ext2_struct_u32_iterate {
	int			magic;
	ext2_u32_list		bb;
	int			ptr;
};

typedef struct ext2_struct_u32_list *badblocks_list;
typedef struct ext2_struct_u32_iterate *badblocks_iterate;
typedef struct ext2_struct_u32_list *ext2_badblocks_list;

_INLINE_ errcode_t ext2fs_get_mem(unsigned long size, void *ptr)
{
	void **pp = (void **)ptr;

	*pp = malloc(size);
	if (!*pp)
		return EXT2_ET_NO_MEMORY;
	return 0;
}

_INLINE_ errcode_t ext2fs_free_mem(void *ptr)
{
	void **pp = (void **)ptr;

	free(*pp);
	*pp = 0;
	return 0;
}

#endif

I use the following Makefile to build it:

CC=/opt/eldk-4.2/usr/bin/ppc_4xxFP-gcc
CFLAGS=-g -O2

all: dumpe2fs.o
	$(CC) $(CFLAGS) -o dumpe2fs $^

.c.o:
	$(CC) $(CFLAGS) -c $< -o $@

Finally, here is the dissassembly:


dumpe2fs:     file format elf32-powerpc

Disassembly of section .init:

10000328 <_init>:
10000328:	94 21 ff f0 	stwu    r1,-16(r1)
1000032c:	7c 08 02 a6 	mflr    r0
10000330:	93 c1 00 08 	stw     r30,8(r1)
10000334:	90 01 00 14 	stw     r0,20(r1)
10000338:	48 04 06 f1 	bl      10040a28 <p.6631+0x8>
1000033c:	7f c8 02 a6 	mflr    r30
10000340:	80 1e ff f8 	lwz     r0,-8(r30)
10000344:	2f 80 00 00 	cmpwi   cr7,r0,0
10000348:	41 9e 00 08 	beq-    cr7,10000350 <_init+0x28>
1000034c:	48 04 07 35 	bl      10040a80 <__gmon_start__ at plt>
10000350:	48 00 00 d9 	bl      10000428 <frame_dummy>
10000354:	48 00 04 e1 	bl      10000834 <__do_global_ctors_aux>
10000358:	80 01 00 14 	lwz     r0,20(r1)
1000035c:	7c 08 03 a6 	mtlr    r0
10000360:	83 c1 00 08 	lwz     r30,8(r1)
10000364:	38 21 00 10 	addi    r1,r1,16
10000368:	4e 80 00 20 	blr
Disassembly of section .text:

1000036c <_start>:
1000036c:	7c 29 0b 78 	mr      r9,r1
10000370:	54 21 00 36 	rlwinm  r1,r1,0,0,27
10000374:	38 00 00 00 	li      r0,0
10000378:	94 21 ff f0 	stwu    r1,-16(r1)
1000037c:	7c 08 03 a6 	mtlr    r0
10000380:	90 01 00 00 	stw     r0,0(r1)
10000384:	3d 00 10 00 	lis     r8,4096
10000388:	85 a8 08 c0 	lwzu    r13,2240(r8)
1000038c:	48 04 06 fc 	b       10040a88 <__libc_start_main at plt>

10000390 <__do_global_dtors_aux>:
10000390:	94 21 ff f0 	stwu    r1,-16(r1)
10000394:	7c 08 02 a6 	mflr    r0
10000398:	93 c1 00 08 	stw     r30,8(r1)
1000039c:	3f c0 10 04 	lis     r30,4100
100003a0:	90 01 00 14 	stw     r0,20(r1)
100003a4:	88 1e 0a c0 	lbz     r0,2752(r30)
100003a8:	93 e1 00 0c 	stw     r31,12(r1)
100003ac:	2f 80 00 00 	cmpwi   cr7,r0,0
100003b0:	40 9e 00 44 	bne-    cr7,100003f4 <__do_global_dtors_aux+0x64>
100003b4:	3d 20 10 04 	lis     r9,4100
100003b8:	3b e9 0a 1c 	addi    r31,r9,2588
100003bc:	81 7f 00 04 	lwz     r11,4(r31)
100003c0:	81 2b 00 00 	lwz     r9,0(r11)
100003c4:	2f 89 00 00 	cmpwi   cr7,r9,0
100003c8:	41 9e 00 24 	beq-    cr7,100003ec <__do_global_dtors_aux+0x5c>
100003cc:	38 0b 00 04 	addi    r0,r11,4
100003d0:	7d 29 03 a6 	mtctr   r9
100003d4:	90 1f 00 04 	stw     r0,4(r31)
100003d8:	4e 80 04 21 	bctrl
100003dc:	81 7f 00 04 	lwz     r11,4(r31)
100003e0:	81 2b 00 00 	lwz     r9,0(r11)
100003e4:	2f 89 00 00 	cmpwi   cr7,r9,0
100003e8:	40 9e ff e4 	bne+    cr7,100003cc <__do_global_dtors_aux+0x3c>
100003ec:	38 00 00 01 	li      r0,1
100003f0:	98 1e 0a c0 	stb     r0,2752(r30)
100003f4:	80 01 00 14 	lwz     r0,20(r1)
100003f8:	83 c1 00 08 	lwz     r30,8(r1)
100003fc:	83 e1 00 0c 	lwz     r31,12(r1)
10000400:	7c 08 03 a6 	mtlr    r0
10000404:	38 21 00 10 	addi    r1,r1,16
10000408:	4e 80 00 20 	blr

1000040c <call___do_global_dtors_aux>:
1000040c:	94 21 ff f0 	stwu    r1,-16(r1)
10000410:	7c 08 02 a6 	mflr    r0
10000414:	90 01 00 14 	stw     r0,20(r1)
10000418:	80 01 00 14 	lwz     r0,20(r1)
1000041c:	38 21 00 10 	addi    r1,r1,16
10000420:	7c 08 03 a6 	mtlr    r0
10000424:	4e 80 00 20 	blr

10000428 <frame_dummy>:
10000428:	94 21 ff f0 	stwu    r1,-16(r1)
1000042c:	7c 08 02 a6 	mflr    r0
10000430:	3d 20 10 04 	lis     r9,4100
10000434:	90 01 00 14 	stw     r0,20(r1)
10000438:	38 69 09 48 	addi    r3,r9,2376
1000043c:	80 09 09 48 	lwz     r0,2376(r9)
10000440:	2f 80 00 00 	cmpwi   cr7,r0,0
10000444:	41 9e 00 1c 	beq-    cr7,10000460 <frame_dummy+0x38>
10000448:	3d 20 00 00 	lis     r9,0
1000044c:	39 29 00 00 	addi    r9,r9,0
10000450:	2f 89 00 00 	cmpwi   cr7,r9,0
10000454:	41 9e 00 0c 	beq-    cr7,10000460 <frame_dummy+0x38>
10000458:	7d 29 03 a6 	mtctr   r9
1000045c:	4e 80 04 21 	bctrl
10000460:	80 01 00 14 	lwz     r0,20(r1)
10000464:	38 21 00 10 	addi    r1,r1,16
10000468:	7c 08 03 a6 	mtlr    r0
1000046c:	4e 80 00 20 	blr

10000470 <call_frame_dummy>:
10000470:	94 21 ff f0 	stwu    r1,-16(r1)
10000474:	7c 08 02 a6 	mflr    r0
10000478:	90 01 00 14 	stw     r0,20(r1)
1000047c:	80 01 00 14 	lwz     r0,20(r1)
10000480:	38 21 00 10 	addi    r1,r1,16
10000484:	7c 08 03 a6 	mtlr    r0
10000488:	4e 80 00 20 	blr

1000048c <ext2fs_badblocks_list_create>:
1000048c:	94 21 ff d0 	stwu    r1,-48(r1)
10000490:	7c 08 02 a6 	mflr    r0
10000494:	93 c1 00 28 	stw     r30,40(r1)
10000498:	7c 7e 1b 78 	mr      r30,r3
1000049c:	38 60 00 14 	li      r3,20
100004a0:	90 01 00 34 	stw     r0,52(r1)
100004a4:	93 81 00 20 	stw     r28,32(r1)
100004a8:	93 a1 00 24 	stw     r29,36(r1)
100004ac:	93 e1 00 2c 	stw     r31,44(r1)
100004b0:	7c 9d 23 78 	mr      r29,r4
100004b4:	48 04 05 e5 	bl      10040a98 <malloc at plt>
100004b8:	7c 7c 1b 78 	mr      r28,r3
100004bc:	57 a3 10 3a 	rlwinm  r3,r29,2,0,29
100004c0:	93 81 00 08 	stw     r28,8(r1)
100004c4:	48 04 05 d5 	bl      10040a98 <malloc at plt>
100004c8:	81 61 00 08 	lwz     r11,8(r1)
100004cc:	7c 60 fe 70 	srawi   r0,r3,31
100004d0:	7c 09 1a 78 	xor     r9,r0,r3
100004d4:	83 eb 00 0c 	lwz     r31,12(r11)
100004d8:	7d 29 00 50 	subf    r9,r9,r0
100004dc:	3c 00 80 d4 	lis     r0,-32556
100004e0:	7d 3d fe 70 	srawi   r29,r9,31
100004e4:	60 00 48 ba 	ori     r0,r0,18618
100004e8:	2f 9f 00 00 	cmpwi   cr7,r31,0
100004ec:	7f bd 00 38 	and     r29,r29,r0
100004f0:	3d 3d 7f 2c 	addis   r9,r29,32556
100004f4:	90 7c 00 0c 	stw     r3,12(r28)
100004f8:	3b a9 b7 46 	addi    r29,r9,-18618
100004fc:	41 9e 00 30 	beq-    cr7,1000052c <ext2fs_badblocks_list_create+0xa0>
10000500:	91 7e 00 00 	stw     r11,0(r30)
10000504:	3b a0 00 00 	li      r29,0
10000508:	80 01 00 34 	lwz     r0,52(r1)
1000050c:	7f a3 eb 78 	mr      r3,r29
10000510:	83 81 00 20 	lwz     r28,32(r1)
10000514:	83 a1 00 24 	lwz     r29,36(r1)
10000518:	83 c1 00 28 	lwz     r30,40(r1)
1000051c:	83 e1 00 2c 	lwz     r31,44(r1)
10000520:	7c 08 03 a6 	mtlr    r0
10000524:	38 21 00 30 	addi    r1,r1,48
10000528:	4e 80 00 20 	blr
1000052c:	7d 63 5b 78 	mr      r3,r11
10000530:	48 04 05 61 	bl      10040a90 <free at plt>
10000534:	93 e1 00 08 	stw     r31,8(r1)
10000538:	4b ff ff d0 	b       10000508 <ext2fs_badblocks_list_create+0x7c>

1000053c <main>:
1000053c:	94 21 ff e0 	stwu    r1,-32(r1)
10000540:	7c 08 02 a6 	mflr    r0
10000544:	38 80 01 f4 	li      r4,500
10000548:	90 01 00 24 	stw     r0,36(r1)
1000054c:	38 61 00 08 	addi    r3,r1,8
10000550:	38 00 00 00 	li      r0,0
10000554:	90 01 00 08 	stw     r0,8(r1)
10000558:	4b ff ff 35 	bl      1000048c <ext2fs_badblocks_list_create>
1000055c:	80 a1 00 08 	lwz     r5,8(r1)
10000560:	3d 20 10 04 	lis     r9,4100
10000564:	80 69 0a bc 	lwz     r3,2748(r9)
10000568:	80 c5 00 0c 	lwz     r6,12(r5)
1000056c:	3c 80 10 00 	lis     r4,4096
10000570:	38 84 08 d4 	addi    r4,r4,2260
10000574:	4c c6 31 82 	crclr   4*cr1+eq
10000578:	48 04 05 29 	bl      10040aa0 <__nldbl_fprintf at plt>
1000057c:	80 01 00 24 	lwz     r0,36(r1)
10000580:	38 21 00 20 	addi    r1,r1,32
10000584:	7c 08 03 a6 	mtlr    r0
10000588:	4e 80 00 20 	blr

1000058c <__libc_csu_fini>:
1000058c:	94 21 ff f0 	stwu    r1,-16(r1)
10000590:	38 21 00 10 	addi    r1,r1,16
10000594:	4e 80 00 20 	blr
10000598:	00 04 83 84 	.long 0x48384

1000059c <__libc_csu_init>:
1000059c:	94 21 ff d0 	stwu    r1,-48(r1)
100005a0:	7c 08 02 a6 	mflr    r0
100005a4:	93 21 00 14 	stw     r25,20(r1)
100005a8:	93 41 00 18 	stw     r26,24(r1)
100005ac:	93 61 00 1c 	stw     r27,28(r1)
100005b0:	93 81 00 20 	stw     r28,32(r1)
100005b4:	93 a1 00 24 	stw     r29,36(r1)
100005b8:	93 c1 00 28 	stw     r30,40(r1)
100005bc:	93 e1 00 2c 	stw     r31,44(r1)
100005c0:	90 01 00 34 	stw     r0,52(r1)
100005c4:	42 9f 00 05 	bcl-    20,4*cr7+so,100005c8 <__libc_csu_init+0x2c>
100005c8:	7f c8 02 a6 	mflr    r30
100005cc:	80 1e ff d0 	lwz     r0,-48(r30)
100005d0:	7f c0 f2 14 	add     r30,r0,r30
100005d4:	7c 79 1b 78 	mr      r25,r3
100005d8:	7c 9b 23 78 	mr      r27,r4
100005dc:	7c bc 2b 78 	mr      r28,r5
100005e0:	4b ff fd 49 	bl      10000328 <_init>
100005e4:	80 1e 80 00 	lwz     r0,-32768(r30)
100005e8:	81 3e 80 04 	lwz     r9,-32764(r30)
100005ec:	7c 09 00 50 	subf    r0,r9,r0
100005f0:	7c 1d 16 71 	srawi.  r29,r0,2
100005f4:	41 82 00 34 	beq-    10000628 <__libc_csu_init+0x8c>
100005f8:	3b e0 00 00 	li      r31,0
100005fc:	7d 3a 4b 78 	mr      r26,r9
10000600:	57 e0 10 3a 	rlwinm  r0,r31,2,0,29
10000604:	7c 1a 00 2e 	lwzx    r0,r26,r0
10000608:	7c 09 03 a6 	mtctr   r0
1000060c:	7f 23 cb 78 	mr      r3,r25
10000610:	7f 64 db 78 	mr      r4,r27
10000614:	7f 85 e3 78 	mr      r5,r28
10000618:	4e 80 04 21 	bctrl
1000061c:	3b ff 00 01 	addi    r31,r31,1
10000620:	7f 9d f8 00 	cmpw    cr7,r29,r31
10000624:	40 9e ff dc 	bne+    cr7,10000600 <__libc_csu_init+0x64>
10000628:	80 01 00 34 	lwz     r0,52(r1)
1000062c:	7c 08 03 a6 	mtlr    r0
10000630:	83 21 00 14 	lwz     r25,20(r1)
10000634:	83 41 00 18 	lwz     r26,24(r1)
10000638:	83 61 00 1c 	lwz     r27,28(r1)
1000063c:	83 81 00 20 	lwz     r28,32(r1)
10000640:	83 a1 00 24 	lwz     r29,36(r1)
10000644:	83 c1 00 28 	lwz     r30,40(r1)
10000648:	83 e1 00 2c 	lwz     r31,44(r1)
1000064c:	38 21 00 30 	addi    r1,r1,48
10000650:	4e 80 00 20 	blr

10000654 <_savefpr_14>:
10000654:	d9 cb ff 70 	stfd    f14,-144(r11)

10000658 <_savefpr_15>:
10000658:	d9 eb ff 78 	stfd    f15,-136(r11)

1000065c <_savefpr_16>:
1000065c:	da 0b ff 80 	stfd    f16,-128(r11)

10000660 <_savefpr_17>:
10000660:	da 2b ff 88 	stfd    f17,-120(r11)

10000664 <_savefpr_18>:
10000664:	da 4b ff 90 	stfd    f18,-112(r11)

10000668 <_savefpr_19>:
10000668:	da 6b ff 98 	stfd    f19,-104(r11)

1000066c <_savefpr_20>:
1000066c:	da 8b ff a0 	stfd    f20,-96(r11)

10000670 <_savefpr_21>:
10000670:	da ab ff a8 	stfd    f21,-88(r11)

10000674 <_savefpr_22>:
10000674:	da cb ff b0 	stfd    f22,-80(r11)

10000678 <_savefpr_23>:
10000678:	da eb ff b8 	stfd    f23,-72(r11)

1000067c <_savefpr_24>:
1000067c:	db 0b ff c0 	stfd    f24,-64(r11)

10000680 <_savefpr_25>:
10000680:	db 2b ff c8 	stfd    f25,-56(r11)

10000684 <_savefpr_26>:
10000684:	db 4b ff d0 	stfd    f26,-48(r11)

10000688 <_savefpr_27>:
10000688:	db 6b ff d8 	stfd    f27,-40(r11)

1000068c <_savefpr_28>:
1000068c:	db 8b ff e0 	stfd    f28,-32(r11)

10000690 <_savefpr_29>:
10000690:	db ab ff e8 	stfd    f29,-24(r11)

10000694 <_savefpr_30>:
10000694:	db cb ff f0 	stfd    f30,-16(r11)

10000698 <_savefpr_31>:
10000698:	db eb ff f8 	stfd    f31,-8(r11)
1000069c:	4e 80 00 20 	blr

100006a0 <_savegpr_14>:
100006a0:	91 cb ff b8 	stw     r14,-72(r11)

100006a4 <_savegpr_15>:
100006a4:	91 eb ff bc 	stw     r15,-68(r11)

100006a8 <_savegpr_16>:
100006a8:	92 0b ff c0 	stw     r16,-64(r11)

100006ac <_savegpr_17>:
100006ac:	92 2b ff c4 	stw     r17,-60(r11)

100006b0 <_savegpr_18>:
100006b0:	92 4b ff c8 	stw     r18,-56(r11)

100006b4 <_savegpr_19>:
100006b4:	92 6b ff cc 	stw     r19,-52(r11)

100006b8 <_savegpr_20>:
100006b8:	92 8b ff d0 	stw     r20,-48(r11)

100006bc <_savegpr_21>:
100006bc:	92 ab ff d4 	stw     r21,-44(r11)

100006c0 <_savegpr_22>:
100006c0:	92 cb ff d8 	stw     r22,-40(r11)

100006c4 <_savegpr_23>:
100006c4:	92 eb ff dc 	stw     r23,-36(r11)

100006c8 <_savegpr_24>:
100006c8:	93 0b ff e0 	stw     r24,-32(r11)

100006cc <_savegpr_25>:
100006cc:	93 2b ff e4 	stw     r25,-28(r11)

100006d0 <_savegpr_26>:
100006d0:	93 4b ff e8 	stw     r26,-24(r11)

100006d4 <_savegpr_27>:
100006d4:	93 6b ff ec 	stw     r27,-20(r11)

100006d8 <_savegpr_28>:
100006d8:	93 8b ff f0 	stw     r28,-16(r11)

100006dc <_savegpr_29>:
100006dc:	93 ab ff f4 	stw     r29,-12(r11)

100006e0 <_savegpr_30>:
100006e0:	93 cb ff f8 	stw     r30,-8(r11)

100006e4 <_savegpr_31>:
100006e4:	93 eb ff fc 	stw     r31,-4(r11)
100006e8:	4e 80 00 20 	blr

100006ec <_restfpr_14>:
100006ec:	c9 cb ff 70 	lfd     f14,-144(r11)

100006f0 <_restfpr_15>:
100006f0:	c9 eb ff 78 	lfd     f15,-136(r11)

100006f4 <_restfpr_16>:
100006f4:	ca 0b ff 80 	lfd     f16,-128(r11)

100006f8 <_restfpr_17>:
100006f8:	ca 2b ff 88 	lfd     f17,-120(r11)

100006fc <_restfpr_18>:
100006fc:	ca 4b ff 90 	lfd     f18,-112(r11)

10000700 <_restfpr_19>:
10000700:	ca 6b ff 98 	lfd     f19,-104(r11)

10000704 <_restfpr_20>:
10000704:	ca 8b ff a0 	lfd     f20,-96(r11)

10000708 <_restfpr_21>:
10000708:	ca ab ff a8 	lfd     f21,-88(r11)

1000070c <_restfpr_22>:
1000070c:	ca cb ff b0 	lfd     f22,-80(r11)

10000710 <_restfpr_23>:
10000710:	ca eb ff b8 	lfd     f23,-72(r11)

10000714 <_restfpr_24>:
10000714:	cb 0b ff c0 	lfd     f24,-64(r11)

10000718 <_restfpr_25>:
10000718:	cb 2b ff c8 	lfd     f25,-56(r11)

1000071c <_restfpr_26>:
1000071c:	cb 4b ff d0 	lfd     f26,-48(r11)

10000720 <_restfpr_27>:
10000720:	cb 6b ff d8 	lfd     f27,-40(r11)

10000724 <_restfpr_28>:
10000724:	cb 8b ff e0 	lfd     f28,-32(r11)

10000728 <_restfpr_29>:
10000728:	cb ab ff e8 	lfd     f29,-24(r11)

1000072c <_restfpr_30>:
1000072c:	cb cb ff f0 	lfd     f30,-16(r11)

10000730 <_restfpr_31>:
10000730:	cb eb ff f8 	lfd     f31,-8(r11)
10000734:	4e 80 00 20 	blr

10000738 <_restgpr_14>:
10000738:	81 cb ff b8 	lwz     r14,-72(r11)

1000073c <_restgpr_15>:
1000073c:	81 eb ff bc 	lwz     r15,-68(r11)

10000740 <_restgpr_16>:
10000740:	82 0b ff c0 	lwz     r16,-64(r11)

10000744 <_restgpr_17>:
10000744:	82 2b ff c4 	lwz     r17,-60(r11)

10000748 <_restgpr_18>:
10000748:	82 4b ff c8 	lwz     r18,-56(r11)

1000074c <_restgpr_19>:
1000074c:	82 6b ff cc 	lwz     r19,-52(r11)

10000750 <_restgpr_20>:
10000750:	82 8b ff d0 	lwz     r20,-48(r11)

10000754 <_restgpr_21>:
10000754:	82 ab ff d4 	lwz     r21,-44(r11)

10000758 <_restgpr_22>:
10000758:	82 cb ff d8 	lwz     r22,-40(r11)

1000075c <_restgpr_23>:
1000075c:	82 eb ff dc 	lwz     r23,-36(r11)

10000760 <_restgpr_24>:
10000760:	83 0b ff e0 	lwz     r24,-32(r11)

10000764 <_restgpr_25>:
10000764:	83 2b ff e4 	lwz     r25,-28(r11)

10000768 <_restgpr_26>:
10000768:	83 4b ff e8 	lwz     r26,-24(r11)

1000076c <_restgpr_27>:
1000076c:	83 6b ff ec 	lwz     r27,-20(r11)

10000770 <_restgpr_28>:
10000770:	83 8b ff f0 	lwz     r28,-16(r11)

10000774 <_restgpr_29>:
10000774:	83 ab ff f4 	lwz     r29,-12(r11)

10000778 <_restgpr_30>:
10000778:	83 cb ff f8 	lwz     r30,-8(r11)

1000077c <_restgpr_31>:
1000077c:	83 eb ff fc 	lwz     r31,-4(r11)
10000780:	4e 80 00 20 	blr

10000784 <_restfpr_14_x>:
10000784:	c9 cb ff 70 	lfd     f14,-144(r11)

10000788 <_restfpr_15_x>:
10000788:	c9 eb ff 78 	lfd     f15,-136(r11)

1000078c <_restfpr_16_x>:
1000078c:	ca 0b ff 80 	lfd     f16,-128(r11)

10000790 <_restfpr_17_x>:
10000790:	ca 2b ff 88 	lfd     f17,-120(r11)

10000794 <_restfpr_18_x>:
10000794:	ca 4b ff 90 	lfd     f18,-112(r11)

10000798 <_restfpr_19_x>:
10000798:	ca 6b ff 98 	lfd     f19,-104(r11)

1000079c <_restfpr_20_x>:
1000079c:	ca 8b ff a0 	lfd     f20,-96(r11)

100007a0 <_restfpr_21_x>:
100007a0:	ca ab ff a8 	lfd     f21,-88(r11)

100007a4 <_restfpr_22_x>:
100007a4:	ca cb ff b0 	lfd     f22,-80(r11)

100007a8 <_restfpr_23_x>:
100007a8:	ca eb ff b8 	lfd     f23,-72(r11)

100007ac <_restfpr_24_x>:
100007ac:	cb 0b ff c0 	lfd     f24,-64(r11)

100007b0 <_restfpr_25_x>:
100007b0:	cb 2b ff c8 	lfd     f25,-56(r11)

100007b4 <_restfpr_26_x>:
100007b4:	cb 4b ff d0 	lfd     f26,-48(r11)

100007b8 <_restfpr_27_x>:
100007b8:	cb 6b ff d8 	lfd     f27,-40(r11)

100007bc <_restfpr_28_x>:
100007bc:	cb 8b ff e0 	lfd     f28,-32(r11)

100007c0 <_restfpr_29_x>:
100007c0:	cb ab ff e8 	lfd     f29,-24(r11)

100007c4 <_restfpr_30_x>:
100007c4:	cb cb ff f0 	lfd     f30,-16(r11)

100007c8 <_restfpr_31_x>:
100007c8:	80 0b 00 04 	lwz     r0,4(r11)
100007cc:	cb eb ff f8 	lfd     f31,-8(r11)
100007d0:	7c 08 03 a6 	mtlr    r0
100007d4:	7d 61 5b 78 	mr      r1,r11
100007d8:	4e 80 00 20 	blr

100007dc <_restgpr_14_x>:
100007dc:	81 cb ff b8 	lwz     r14,-72(r11)

100007e0 <_restgpr_15_x>:
100007e0:	81 eb ff bc 	lwz     r15,-68(r11)

100007e4 <_restgpr_16_x>:
100007e4:	82 0b ff c0 	lwz     r16,-64(r11)

100007e8 <_restgpr_17_x>:
100007e8:	82 2b ff c4 	lwz     r17,-60(r11)

100007ec <_restgpr_18_x>:
100007ec:	82 4b ff c8 	lwz     r18,-56(r11)

100007f0 <_restgpr_19_x>:
100007f0:	82 6b ff cc 	lwz     r19,-52(r11)

100007f4 <_restgpr_20_x>:
100007f4:	82 8b ff d0 	lwz     r20,-48(r11)

100007f8 <_restgpr_21_x>:
100007f8:	82 ab ff d4 	lwz     r21,-44(r11)

100007fc <_restgpr_22_x>:
100007fc:	82 cb ff d8 	lwz     r22,-40(r11)

10000800 <_restgpr_23_x>:
10000800:	82 eb ff dc 	lwz     r23,-36(r11)

10000804 <_restgpr_24_x>:
10000804:	83 0b ff e0 	lwz     r24,-32(r11)

10000808 <_restgpr_25_x>:
10000808:	83 2b ff e4 	lwz     r25,-28(r11)

1000080c <_restgpr_26_x>:
1000080c:	83 4b ff e8 	lwz     r26,-24(r11)

10000810 <_restgpr_27_x>:
10000810:	83 6b ff ec 	lwz     r27,-20(r11)

10000814 <_restgpr_28_x>:
10000814:	83 8b ff f0 	lwz     r28,-16(r11)

10000818 <_restgpr_29_x>:
10000818:	83 ab ff f4 	lwz     r29,-12(r11)

1000081c <_restgpr_30_x>:
1000081c:	83 cb ff f8 	lwz     r30,-8(r11)

10000820 <_restgpr_31_x>:
10000820:	80 0b 00 04 	lwz     r0,4(r11)
10000824:	83 eb ff fc 	lwz     r31,-4(r11)
10000828:	7c 08 03 a6 	mtlr    r0
1000082c:	7d 61 5b 78 	mr      r1,r11
10000830:	4e 80 00 20 	blr

10000834 <__do_global_ctors_aux>:
10000834:	94 21 ff f0 	stwu    r1,-16(r1)
10000838:	7c 08 02 a6 	mflr    r0
1000083c:	3d 20 10 04 	lis     r9,4100
10000840:	90 01 00 14 	stw     r0,20(r1)
10000844:	39 29 09 3c 	addi    r9,r9,2364
10000848:	80 09 ff fc 	lwz     r0,-4(r9)
1000084c:	93 e1 00 0c 	stw     r31,12(r1)
10000850:	2f 80 ff ff 	cmpwi   cr7,r0,-1
10000854:	3b e9 ff fc 	addi    r31,r9,-4
10000858:	41 9e 00 18 	beq-    cr7,10000870 <__do_global_ctors_aux+0x3c>
1000085c:	7c 09 03 a6 	mtctr   r0
10000860:	4e 80 04 21 	bctrl
10000864:	84 1f ff fc 	lwzu    r0,-4(r31)
10000868:	2f 80 ff ff 	cmpwi   cr7,r0,-1
1000086c:	40 9e ff f0 	bne+    cr7,1000085c <__do_global_ctors_aux+0x28>
10000870:	80 01 00 14 	lwz     r0,20(r1)
10000874:	83 e1 00 0c 	lwz     r31,12(r1)
10000878:	7c 08 03 a6 	mtlr    r0
1000087c:	38 21 00 10 	addi    r1,r1,16
10000880:	4e 80 00 20 	blr

10000884 <call___do_global_ctors_aux>:
10000884:	94 21 ff f0 	stwu    r1,-16(r1)
10000888:	7c 08 02 a6 	mflr    r0
1000088c:	90 01 00 14 	stw     r0,20(r1)
10000890:	80 01 00 14 	lwz     r0,20(r1)
10000894:	38 21 00 10 	addi    r1,r1,16
10000898:	7c 08 03 a6 	mtlr    r0
1000089c:	4e 80 00 20 	blr
Disassembly of section .fini:

100008a0 <_fini>:
100008a0:	94 21 ff f0 	stwu    r1,-16(r1)
100008a4:	7c 08 02 a6 	mflr    r0
100008a8:	90 01 00 14 	stw     r0,20(r1)
100008ac:	4b ff fa e5 	bl      10000390 <__do_global_dtors_aux>
100008b0:	80 01 00 14 	lwz     r0,20(r1)
100008b4:	7c 08 03 a6 	mtlr    r0
100008b8:	38 21 00 10 	addi    r1,r1,16
100008bc:	4e 80 00 20 	blr
Disassembly of section .got:

10040a24 <_GLOBAL_OFFSET_TABLE_-0x8>:
10040a24:	00 00 00 00 	.long 0x0
10040a28:	4e 80 00 21 	blrl

10040a2c <_GLOBAL_OFFSET_TABLE_>:
10040a2c:	10 04 09 54 00 00 00 00 00 00 00 00                 ...T........


More information about the eldk mailing list