All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gary Thomas <gary@mlbassoc.com>
To: Khem Raj <raj.khem@gmail.com>
Cc: Poky Project <poky@yoctoproject.org>
Subject: Re: Bad ARM code with GCC 4.7.1
Date: Thu, 10 May 2012 11:08:08 -0600	[thread overview]
Message-ID: <4FABF5F8.3070207@mlbassoc.com> (raw)
In-Reply-To: <CAMKF1sqUt4QrNh9ff0ZERDCttdUSams-wUcOR4e4hDs+7z-Txw@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 985 bytes --]

On 2012-05-10 10:30, Khem Raj wrote:
> On Thu, May 10, 2012 at 9:17 AM, Gary Thomas<gary@mlbassoc.com>  wrote:
>>
>> My board is DM3730, much like a BeagleBoard
>>   ARM architecture: armv7a
>>   Linux kernel 3.0
>
> hmmm that should be able to handle alignment faults in hardware
>
>>
>>
>>>
>>> gcc generate unaligned accesses by default
>>>
>>> Does adding -mno-unaligned-access to cflags help ?
>>
>>
>> I'll check.

Using -mno-unaligned-access fixes this problem, but the kernel just dies a bit
later on (kernel 3.0 + gcc 4.7.1 == bad owies...)

>
> Its not entirely clear whats going on so post the complete function disassembly
> so further context can be seen as well.

Code dump attached - first with /m, then with /r

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------

[-- Attachment #2: disas.out --]
[-- Type: text/plain, Size: 19377 bytes --]

Dump of assembler code for function pcpu_dump_alloc_info:
1083    {
   0xc03fb7dc <+4>:     push    {r4, r5, r6, r7, r8, r9, r10, r11, lr}
   0xc03fb7e0 <+8>:     sub     sp, sp, #60     ; 0x3c
   0xc03fb7e8 <+16>:    str     r0, [sp, #28]
   0xc03fb7f8 <+32>:    mov     r4, r1

1084            int group_width = 1, cpu_width = 1, width;
   0xc03fb808 <+48>:    mov     r7, #1
   0xc03fb828 <+80>:    mov     r6, #1

1085            char empty_str[] = "--------";
   0xc03fb7d8 <+0>:     ldr     r3, [pc, #552]  ; 0xc03fba08 <pcpu_dump_alloc_info+560>
   0xc03fb7e4 <+12>:    ldr     r2, [r3]
   0xc03fb7ec <+20>:    str     r2, [sp, #47]   ; 0x2f
   0xc03fb7f0 <+24>:    ldr     r2, [r3, #4]
   0xc03fb7f4 <+28>:    ldrb    r3, [r3, #8]
   0xc03fb7fc <+36>:    str     r2, [sp, #51]   ; 0x33
   0xc03fb800 <+40>:    strb    r3, [sp, #55]   ; 0x37

1086            int alloc = 0, alloc_end = 0;
   0xc03fb8e0 <+264>:   mov     r8, r5
   0xc03fb8f0 <+280>:   str     r5, [sp, #24]

1087            int group, v;
1088            int upa, apl;   /* units per alloc, allocs per line */
1089
1090            v = ai->nr_groups;
   0xc03fb804 <+44>:    ldr     r0, [r1, #28]

1091            while (v /= 10)
   0xc03fb80c <+52>:    b       0xc03fb814 <pcpu_dump_alloc_info+60>
   0xc03fb814 <+60>:    mov     r1, #10
   0xc03fb818 <+64>:    bl      0xc02386b8 <__divsi3>
   0xc03fb81c <+68>:    cmp     r0, #0
   0xc03fb820 <+72>:    bne     0xc03fb810 <pcpu_dump_alloc_info+56>

1092                    group_width++;
   0xc03fb810 <+56>:    add     r7, r7, #1

1093
1094            v = num_possible_cpus();
1095            while (v /= 10)
   0xc03fb840 <+104>:   b       0xc03fb848 <pcpu_dump_alloc_info+112>
   0xc03fb848 <+112>:   mov     r0, r5
   0xc03fb84c <+116>:   mov     r1, #10
   0xc03fb850 <+120>:   bl      0xc02386b8 <__divsi3>
   0xc03fb854 <+124>:   subs    r5, r0, #0
   0xc03fb858 <+128>:   bne     0xc03fb844 <pcpu_dump_alloc_info+108>

1096                    cpu_width++;
   0xc03fb844 <+108>:   add     r6, r6, #1

1097            empty_str[min_t(int, cpu_width, sizeof(empty_str) - 1)] = '\0';
   0xc03fb85c <+132>:   add     r1, sp, #56     ; 0x38
   0xc03fb860 <+136>:   cmp     r6, #8
   0xc03fb864 <+140>:   movlt   r3, r6
   0xc03fb868 <+144>:   movge   r3, #8
   0xc03fb86c <+148>:   add     r3, r1, r3
   0xc03fb878 <+160>:   strb    r5, [r3, #-9]

1098
1099            upa = ai->alloc_size / ai->unit_size;
   0xc03fb870 <+152>:   ldr     r9, [r4, #20]
   0xc03fb874 <+156>:   ldr     r11, [r4, #12]
   0xc03fb87c <+164>:   mov     r1, r11
   0xc03fb880 <+168>:   mov     r0, r9
   0xc03fb884 <+172>:   bl      0xc023857c <__udivsi3>
   0xc03fb890 <+184>:   mov     r10, r0

1100            width = upa * (cpu_width + 1) + group_width + 3;
   0xc03fb888 <+176>:   add     r1, r6, #1
   0xc03fb88c <+180>:   mla     r1, r1, r0, r7

1101            apl = rounddown_pow_of_two(max(60 / width, 1));
   0xc03fb894 <+188>:   add     r1, r1, #3
   0xc03fb898 <+192>:   mov     r0, #60 ; 0x3c
   0xc03fb89c <+196>:   bl      0xc02386b8 <__divsi3>
   0xc03fb8ac <+212>:   cmp     r0, #1
   0xc03fb8b0 <+216>:   movlt   r0, #1

1102
1103            printk("%spcpu-alloc: s%zu r%zu d%zu u%zu alloc=%zu*%zu",
   0xc03fb8a8 <+208>:   mov     r1, r8
   0xc03fb8bc <+228>:   mov     r0, r9
   0xc03fb8c4 <+236>:   ldr     r3, [r4, #8]
   0xc03fb8cc <+244>:   stm     sp, {r3, r11}
   0xc03fb8d0 <+248>:   bl      0xc023857c <__udivsi3>
   0xc03fb8d4 <+252>:   str     r8, [sp, #12]
   0xc03fb8d8 <+256>:   ldr     r1, [sp, #28]
   0xc03fb8dc <+260>:   ldm     r4, {r2, r3}
   0xc03fb8e4 <+268>:   str     r0, [sp, #8]
   0xc03fb8e8 <+272>:   ldr     r0, [pc, #288]  ; 0xc03fba10 <pcpu_dump_alloc_info+568>
   0xc03fb8ec <+276>:   bl      0xc03f9f48 <printk>

1104                   lvl, ai->static_size, ai->reserved_size, ai->dyn_size,
1105                   ai->unit_size, ai->alloc_size / ai->atom_size, ai->atom_size);
   0xc03fb8a4 <+204>:   ldr     r8, [r4, #16]

1106
1107            for (group = 0; group < ai->nr_groups; group++) {
   0xc03fb8f4 <+284>:   b       0xc03fb9ec <pcpu_dump_alloc_info+532>
   0xc03fb9e8 <+528>:   add     r5, r5, #1
   0xc03fb9ec <+532>:   ldr     r3, [r4, #28]
   0xc03fb9f0 <+536>:   cmp     r5, r3
   0xc03fb9f4 <+540>:   blt     0xc03fb8f8 <pcpu_dump_alloc_info+288>

1108                    const struct pcpu_group_info *gi = &ai->groups[group];
   0xc03fb8f8 <+288>:   mov     r3, #12
   0xc03fb900 <+296>:   mul     r3, r3, r5
   0xc03fb904 <+300>:   add     r3, r3, #32
   0xc03fb908 <+304>:   add     r2, r4, r3
   0xc03fb910 <+312>:   str     r2, [sp, #36]   ; 0x24

1109                    int unit = 0, unit_end = 0;
   0xc03fb938 <+352>:   mov     r9, r11

1110
1111                    BUG_ON(gi->nr_units % upa);
   0xc03fb8fc <+292>:   mov     r1, r10
   0xc03fb90c <+308>:   ldr     r9, [r4, r3]
   0xc03fb914 <+316>:   mov     r0, r9
   0xc03fb918 <+320>:   bl      0xc0238854 <__aeabi_idivmod>
   0xc03fb91c <+324>:   subs    r11, r1, #0
   0xc03fb920 <+328>:   beq     0xc03fb928 <pcpu_dump_alloc_info+336>
   0xc03fb924 <+332>:   b       0xc03fb924 <pcpu_dump_alloc_info+332>

1112                    for (alloc_end += gi->nr_units / upa;
   0xc03fb928 <+336>:   mov     r0, r9
   0xc03fb92c <+340>:   mov     r1, r10
   0xc03fb930 <+344>:   bl      0xc02386b8 <__divsi3>
   0xc03fb934 <+348>:   ldr     r3, [sp, #24]
   0xc03fb93c <+356>:   add     r3, r3, r0
   0xc03fb940 <+360>:   str     r3, [sp, #24]
   0xc03fb944 <+364>:   b       0xc03fb9dc <pcpu_dump_alloc_info+516>
   0xc03fb9dc <+516>:   ldr     r3, [sp, #24]
   0xc03fb9e0 <+520>:   cmp     r8, r3
   0xc03fb9e4 <+524>:   blt     0xc03fb948 <pcpu_dump_alloc_info+368>

1113                         alloc < alloc_end; alloc++) {
   0xc03fb9d8 <+512>:   add     r8, r8, #1

1114                            if (!(alloc % apl)) {
   0xc03fb948 <+368>:   mov     r0, r8
   0xc03fb94c <+372>:   ldr     r1, [sp, #32]
   0xc03fb950 <+376>:   bl      0xc0238854 <__aeabi_idivmod>
   0xc03fb954 <+380>:   cmp     r1, #0
   0xc03fb958 <+384>:   bne     0xc03fb970 <pcpu_dump_alloc_info+408>

1115                                    printk("\n");
   0xc03fb95c <+388>:   ldr     r0, [pc, #176]  ; 0xc03fba14 <pcpu_dump_alloc_info+572>
   0xc03fb960 <+392>:   bl      0xc03f9f48 <printk>

1116                                    printk("%spcpu-alloc: ", lvl);
   0xc03fb964 <+396>:   ldr     r0, [pc, #172]  ; 0xc03fba18 <pcpu_dump_alloc_info+576>
   0xc03fb968 <+400>:   ldr     r1, [sp, #28]
   0xc03fb96c <+404>:   bl      0xc03f9f48 <printk>

1117                            }
1118                            printk("[%0*d] ", group_width, group);
   0xc03fb970 <+408>:   ldr     r0, [pc, #164]  ; 0xc03fba1c <pcpu_dump_alloc_info+580>
   0xc03fb974 <+412>:   mov     r1, r7
   0xc03fb978 <+416>:   mov     r2, r5
   0xc03fb97c <+420>:   bl      0xc03f9f48 <printk>

1119
1120                            for (unit_end += upa; unit < unit_end; unit++)
   0xc03fb980 <+424>:   add     r11, r11, r10
   0xc03fb984 <+428>:   lsl     r3, r9, #2
   0xc03fb988 <+432>:   b       0xc03fb9d0 <pcpu_dump_alloc_info+504>
   0xc03fb9c8 <+496>:   add     r9, r9, #1
   0xc03fb9cc <+500>:   add     r3, r3, #4
   0xc03fb9d0 <+504>:   cmp     r9, r11
   0xc03fb9d4 <+508>:   blt     0xc03fb98c <pcpu_dump_alloc_info+436>

1121                                    if (gi->cpu_map[unit] != NR_CPUS)
   0xc03fb98c <+436>:   ldr     r1, [sp, #36]   ; 0x24
   0xc03fb990 <+440>:   ldr     r2, [r1, #8]
   0xc03fb994 <+444>:   ldr     r2, [r2, r3]
   0xc03fb998 <+448>:   cmp     r2, #2
   0xc03fb99c <+452>:   beq     0xc03fb9b4 <pcpu_dump_alloc_info+476>

1122                                            printk("%0*d ", cpu_width,
   0xc03fb9a0 <+456>:   mov     r1, r6
   0xc03fb9a4 <+460>:   ldr     r0, [pc, #116]  ; 0xc03fba20 <pcpu_dump_alloc_info+584>
   0xc03fb9a8 <+464>:   str     r3, [sp, #20]
   0xc03fb9ac <+468>:   bl      0xc03f9f48 <printk>
   0xc03fb9b0 <+472>:   b       0xc03fb9c4 <pcpu_dump_alloc_info+492>

1123                                                   gi->cpu_map[unit]);
1124                                    else
1125                                            printk("%s ", empty_str);
   0xc03fb9b4 <+476>:   ldr     r0, [pc, #104]  ; 0xc03fba24 <pcpu_dump_alloc_info+588>
   0xc03fb9b8 <+480>:   add     r1, sp, #47     ; 0x2f
   0xc03fb9bc <+484>:   str     r3, [sp, #20]
   0xc03fb9c0 <+488>:   bl      0xc03f9f48 <printk>
   0xc03fb9c4 <+492>:   ldr     r3, [sp, #20]

1126                    }
1127            }
1128            printk("\n");
   0xc03fb9f8 <+544>:   ldr     r0, [pc, #20]   ; 0xc03fba14 <pcpu_dump_alloc_info+572>
   0xc03fb9fc <+548>:   bl      0xc03f9f48 <printk>
1129    }
   0xc03fba00 <+552>:   add     sp, sp, #60     ; 0x3c
   0xc03fba04 <+556>:   pop     {r4, r5, r6, r7, r8, r9, r10, r11, pc}
   0xc03fba08 <+560>:   subsgt  r11, r0, r6, ror r1
   0xc03fba0c <+564>:   strdgt  r12, [r0], #-144        ; 0xffffff70
   0xc03fba10 <+568>:   subsgt  r11, r0, r9, lsr #2
   0xc03fba14 <+572>:   subsgt  r4, r0, r1, ror r0
   0xc03fba18 <+576>:   subsgt  r11, r0, r9, asr r1
   0xc03fba1c <+580>:   subsgt  r11, r0, r8, ror #2
   0xc03fba20 <+584>:   subsgt  r11, r0, r0, ror r1
   0xc03fba24 <+588>:   subsgt  r9, r2, r4, asr #19


---------------------------------------------------------------------------------------------
Dump of assembler code for function pcpu_dump_alloc_info:
   0xc03fb7d8 <+0>:     28 32 9f e5     ldr     r3, [pc, #552]  ; 0xc03fba08 <pcpu_dump_alloc_info+560>
   0xc03fb7dc <+4>:     f0 4f 2d e9     push    {r4, r5, r6, r7, r8, r9, r10, r11, lr}
   0xc03fb7e0 <+8>:     3c d0 4d e2     sub     sp, sp, #60     ; 0x3c
   0xc03fb7e4 <+12>:    00 20 93 e5     ldr     r2, [r3]
   0xc03fb7e8 <+16>:    1c 00 8d e5     str     r0, [sp, #28]
   0xc03fb7ec <+20>:    2f 20 8d e5     str     r2, [sp, #47]   ; 0x2f
   0xc03fb7f0 <+24>:    04 20 93 e5     ldr     r2, [r3, #4]
   0xc03fb7f4 <+28>:    08 30 d3 e5     ldrb    r3, [r3, #8]
   0xc03fb7f8 <+32>:    01 40 a0 e1     mov     r4, r1
   0xc03fb7fc <+36>:    33 20 8d e5     str     r2, [sp, #51]   ; 0x33
   0xc03fb800 <+40>:    37 30 cd e5     strb    r3, [sp, #55]   ; 0x37
   0xc03fb804 <+44>:    1c 00 91 e5     ldr     r0, [r1, #28]
   0xc03fb808 <+48>:    01 70 a0 e3     mov     r7, #1
   0xc03fb80c <+52>:    00 00 00 ea     b       0xc03fb814 <pcpu_dump_alloc_info+60>
   0xc03fb810 <+56>:    01 70 87 e2     add     r7, r7, #1
   0xc03fb814 <+60>:    0a 10 a0 e3     mov     r1, #10
   0xc03fb818 <+64>:    a6 f3 f8 eb     bl      0xc02386b8 <__divsi3>
   0xc03fb81c <+68>:    00 00 50 e3     cmp     r0, #0
   0xc03fb820 <+72>:    fa ff ff 1a     bne     0xc03fb810 <pcpu_dump_alloc_info+56>
   0xc03fb824 <+76>:    e0 31 9f e5     ldr     r3, [pc, #480]  ; 0xc03fba0c <pcpu_dump_alloc_info+564>
   0xc03fb828 <+80>:    01 60 a0 e3     mov     r6, #1
   0xc03fb82c <+84>:    00 30 93 e5     ldr     r3, [r3]
   0xc03fb830 <+88>:    00 00 93 e5     ldr     r0, [r3]
   0xc03fb834 <+92>:    03 00 00 e2     and     r0, r0, #3
   0xc03fb838 <+96>:    c6 2b f9 eb     bl      0xc0246758 <__sw_hweight32>
   0xc03fb83c <+100>:   00 50 a0 e1     mov     r5, r0
   0xc03fb840 <+104>:   00 00 00 ea     b       0xc03fb848 <pcpu_dump_alloc_info+112>
   0xc03fb844 <+108>:   01 60 86 e2     add     r6, r6, #1
   0xc03fb848 <+112>:   05 00 a0 e1     mov     r0, r5
   0xc03fb84c <+116>:   0a 10 a0 e3     mov     r1, #10
   0xc03fb850 <+120>:   98 f3 f8 eb     bl      0xc02386b8 <__divsi3>
   0xc03fb854 <+124>:   00 50 50 e2     subs    r5, r0, #0
   0xc03fb858 <+128>:   f9 ff ff 1a     bne     0xc03fb844 <pcpu_dump_alloc_info+108>
   0xc03fb85c <+132>:   38 10 8d e2     add     r1, sp, #56     ; 0x38
   0xc03fb860 <+136>:   08 00 56 e3     cmp     r6, #8
   0xc03fb864 <+140>:   06 30 a0 b1     movlt   r3, r6
   0xc03fb868 <+144>:   08 30 a0 a3     movge   r3, #8
   0xc03fb86c <+148>:   03 30 81 e0     add     r3, r1, r3
   0xc03fb870 <+152>:   14 90 94 e5     ldr     r9, [r4, #20]
   0xc03fb874 <+156>:   0c b0 94 e5     ldr     r11, [r4, #12]
   0xc03fb878 <+160>:   09 50 43 e5     strb    r5, [r3, #-9]
   0xc03fb87c <+164>:   0b 10 a0 e1     mov     r1, r11
   0xc03fb880 <+168>:   09 00 a0 e1     mov     r0, r9
   0xc03fb884 <+172>:   3c f3 f8 eb     bl      0xc023857c <__udivsi3>
   0xc03fb888 <+176>:   01 10 86 e2     add     r1, r6, #1
   0xc03fb88c <+180>:   91 70 21 e0     mla     r1, r1, r0, r7
   0xc03fb890 <+184>:   00 a0 a0 e1     mov     r10, r0
   0xc03fb894 <+188>:   03 10 81 e2     add     r1, r1, #3
   0xc03fb898 <+192>:   3c 00 a0 e3     mov     r0, #60 ; 0x3c
   0xc03fb89c <+196>:   85 f3 f8 eb     bl      0xc02386b8 <__divsi3>
   0xc03fb8a0 <+200>:   01 20 a0 e3     mov     r2, #1
   0xc03fb8a4 <+204>:   10 80 94 e5     ldr     r8, [r4, #16]
   0xc03fb8a8 <+208>:   08 10 a0 e1     mov     r1, r8
   0xc03fb8ac <+212>:   01 00 50 e3     cmp     r0, #1
   0xc03fb8b0 <+216>:   01 00 a0 b3     movlt   r0, #1
   0xc03fb8b4 <+220>:   10 3f 6f e1     clz     r3, r0
   0xc03fb8b8 <+224>:   1f 30 63 e2     rsb     r3, r3, #31
   0xc03fb8bc <+228>:   09 00 a0 e1     mov     r0, r9
   0xc03fb8c0 <+232>:   12 23 a0 e1     lsl     r2, r2, r3
   0xc03fb8c4 <+236>:   08 30 94 e5     ldr     r3, [r4, #8]
   0xc03fb8c8 <+240>:   20 20 8d e5     str     r2, [sp, #32]
   0xc03fb8cc <+244>:   08 08 8d e8     stm     sp, {r3, r11}
   0xc03fb8d0 <+248>:   29 f3 f8 eb     bl      0xc023857c <__udivsi3>
   0xc03fb8d4 <+252>:   0c 80 8d e5     str     r8, [sp, #12]
   0xc03fb8d8 <+256>:   1c 10 9d e5     ldr     r1, [sp, #28]
   0xc03fb8dc <+260>:   0c 00 94 e8     ldm     r4, {r2, r3}
   0xc03fb8e0 <+264>:   05 80 a0 e1     mov     r8, r5
   0xc03fb8e4 <+268>:   08 00 8d e5     str     r0, [sp, #8]
   0xc03fb8e8 <+272>:   20 01 9f e5     ldr     r0, [pc, #288]  ; 0xc03fba10 <pcpu_dump_alloc_info+568>
   0xc03fb8ec <+276>:   95 f9 ff eb     bl      0xc03f9f48 <printk>
   0xc03fb8f0 <+280>:   18 50 8d e5     str     r5, [sp, #24]
   0xc03fb8f4 <+284>:   3c 00 00 ea     b       0xc03fb9ec <pcpu_dump_alloc_info+532>
   0xc03fb8f8 <+288>:   0c 30 a0 e3     mov     r3, #12
   0xc03fb8fc <+292>:   0a 10 a0 e1     mov     r1, r10
   0xc03fb900 <+296>:   93 05 03 e0     mul     r3, r3, r5
   0xc03fb904 <+300>:   20 30 83 e2     add     r3, r3, #32
   0xc03fb908 <+304>:   03 20 84 e0     add     r2, r4, r3
   0xc03fb90c <+308>:   03 90 94 e7     ldr     r9, [r4, r3]
   0xc03fb910 <+312>:   24 20 8d e5     str     r2, [sp, #36]   ; 0x24
   0xc03fb914 <+316>:   09 00 a0 e1     mov     r0, r9
   0xc03fb918 <+320>:   cd f3 f8 eb     bl      0xc0238854 <__aeabi_idivmod>
   0xc03fb91c <+324>:   00 b0 51 e2     subs    r11, r1, #0
   0xc03fb920 <+328>:   00 00 00 0a     beq     0xc03fb928 <pcpu_dump_alloc_info+336>
   0xc03fb924 <+332>:   fe ff ff ea     b       0xc03fb924 <pcpu_dump_alloc_info+332>
   0xc03fb928 <+336>:   09 00 a0 e1     mov     r0, r9
   0xc03fb92c <+340>:   0a 10 a0 e1     mov     r1, r10
   0xc03fb930 <+344>:   60 f3 f8 eb     bl      0xc02386b8 <__divsi3>
   0xc03fb934 <+348>:   18 30 9d e5     ldr     r3, [sp, #24]
   0xc03fb938 <+352>:   0b 90 a0 e1     mov     r9, r11
   0xc03fb93c <+356>:   00 30 83 e0     add     r3, r3, r0
   0xc03fb940 <+360>:   18 30 8d e5     str     r3, [sp, #24]
   0xc03fb944 <+364>:   24 00 00 ea     b       0xc03fb9dc <pcpu_dump_alloc_info+516>
   0xc03fb948 <+368>:   08 00 a0 e1     mov     r0, r8
   0xc03fb94c <+372>:   20 10 9d e5     ldr     r1, [sp, #32]
   0xc03fb950 <+376>:   bf f3 f8 eb     bl      0xc0238854 <__aeabi_idivmod>
   0xc03fb954 <+380>:   00 00 51 e3     cmp     r1, #0
   0xc03fb958 <+384>:   04 00 00 1a     bne     0xc03fb970 <pcpu_dump_alloc_info+408>
   0xc03fb95c <+388>:   b0 00 9f e5     ldr     r0, [pc, #176]  ; 0xc03fba14 <pcpu_dump_alloc_info+572>
   0xc03fb960 <+392>:   78 f9 ff eb     bl      0xc03f9f48 <printk>
   0xc03fb964 <+396>:   ac 00 9f e5     ldr     r0, [pc, #172]  ; 0xc03fba18 <pcpu_dump_alloc_info+576>
   0xc03fb968 <+400>:   1c 10 9d e5     ldr     r1, [sp, #28]
   0xc03fb96c <+404>:   75 f9 ff eb     bl      0xc03f9f48 <printk>
   0xc03fb970 <+408>:   a4 00 9f e5     ldr     r0, [pc, #164]  ; 0xc03fba1c <pcpu_dump_alloc_info+580>
   0xc03fb974 <+412>:   07 10 a0 e1     mov     r1, r7
   0xc03fb978 <+416>:   05 20 a0 e1     mov     r2, r5
   0xc03fb97c <+420>:   71 f9 ff eb     bl      0xc03f9f48 <printk>
   0xc03fb980 <+424>:   0a b0 8b e0     add     r11, r11, r10
   0xc03fb984 <+428>:   09 31 a0 e1     lsl     r3, r9, #2
   0xc03fb988 <+432>:   10 00 00 ea     b       0xc03fb9d0 <pcpu_dump_alloc_info+504>
   0xc03fb98c <+436>:   24 10 9d e5     ldr     r1, [sp, #36]   ; 0x24
   0xc03fb990 <+440>:   08 20 91 e5     ldr     r2, [r1, #8]
   0xc03fb994 <+444>:   03 20 92 e7     ldr     r2, [r2, r3]
   0xc03fb998 <+448>:   02 00 52 e3     cmp     r2, #2
   0xc03fb99c <+452>:   04 00 00 0a     beq     0xc03fb9b4 <pcpu_dump_alloc_info+476>
   0xc03fb9a0 <+456>:   06 10 a0 e1     mov     r1, r6
   0xc03fb9a4 <+460>:   74 00 9f e5     ldr     r0, [pc, #116]  ; 0xc03fba20 <pcpu_dump_alloc_info+584>
   0xc03fb9a8 <+464>:   14 30 8d e5     str     r3, [sp, #20]
   0xc03fb9ac <+468>:   65 f9 ff eb     bl      0xc03f9f48 <printk>
   0xc03fb9b0 <+472>:   03 00 00 ea     b       0xc03fb9c4 <pcpu_dump_alloc_info+492>
   0xc03fb9b4 <+476>:   68 00 9f e5     ldr     r0, [pc, #104]  ; 0xc03fba24 <pcpu_dump_alloc_info+588>
   0xc03fb9b8 <+480>:   2f 10 8d e2     add     r1, sp, #47     ; 0x2f
   0xc03fb9bc <+484>:   14 30 8d e5     str     r3, [sp, #20]
   0xc03fb9c0 <+488>:   60 f9 ff eb     bl      0xc03f9f48 <printk>
   0xc03fb9c4 <+492>:   14 30 9d e5     ldr     r3, [sp, #20]
   0xc03fb9c8 <+496>:   01 90 89 e2     add     r9, r9, #1
   0xc03fb9cc <+500>:   04 30 83 e2     add     r3, r3, #4
   0xc03fb9d0 <+504>:   0b 00 59 e1     cmp     r9, r11
   0xc03fb9d4 <+508>:   ec ff ff ba     blt     0xc03fb98c <pcpu_dump_alloc_info+436>
   0xc03fb9d8 <+512>:   01 80 88 e2     add     r8, r8, #1
   0xc03fb9dc <+516>:   18 30 9d e5     ldr     r3, [sp, #24]
   0xc03fb9e0 <+520>:   03 00 58 e1     cmp     r8, r3
   0xc03fb9e4 <+524>:   d7 ff ff ba     blt     0xc03fb948 <pcpu_dump_alloc_info+368>
   0xc03fb9e8 <+528>:   01 50 85 e2     add     r5, r5, #1
   0xc03fb9ec <+532>:   1c 30 94 e5     ldr     r3, [r4, #28]
   0xc03fb9f0 <+536>:   03 00 55 e1     cmp     r5, r3
   0xc03fb9f4 <+540>:   bf ff ff ba     blt     0xc03fb8f8 <pcpu_dump_alloc_info+288>
   0xc03fb9f8 <+544>:   14 00 9f e5     ldr     r0, [pc, #20]   ; 0xc03fba14 <pcpu_dump_alloc_info+572>
   0xc03fb9fc <+548>:   51 f9 ff eb     bl      0xc03f9f48 <printk>
   0xc03fba00 <+552>:   3c d0 8d e2     add     sp, sp, #60     ; 0x3c
   0xc03fba04 <+556>:   f0 8f bd e8     pop     {r4, r5, r6, r7, r8, r9, r10, r11, pc}
   0xc03fba08 <+560>:   76 b1 50 c0     subsgt  r11, r0, r6, ror r1
   0xc03fba0c <+564>:   f0 c9 40 c0     strdgt  r12, [r0], #-144        ; 0xffffff70
   0xc03fba10 <+568>:   29 b1 50 c0     subsgt  r11, r0, r9, lsr #2
   0xc03fba14 <+572>:   71 40 50 c0     subsgt  r4, r0, r1, ror r0
   0xc03fba18 <+576>:   59 b1 50 c0     subsgt  r11, r0, r9, asr r1
   0xc03fba1c <+580>:   68 b1 50 c0     subsgt  r11, r0, r8, ror #2
   0xc03fba20 <+584>:   70 b1 50 c0     subsgt  r11, r0, r0, ror r1
   0xc03fba24 <+588>:   c4 99 52 c0     subsgt  r9, r2, r4, asr #19

  parent reply	other threads:[~2012-05-10 17:08 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-10 14:28 Bad ARM code with GCC 4.7.1 Gary Thomas
2012-05-10 15:46 ` Khem Raj
2012-05-10 16:17   ` Gary Thomas
2012-05-10 16:30     ` Khem Raj
2012-05-10 16:49       ` Mark Hatle
2012-05-10 17:00         ` Khem Raj
2012-05-10 17:08       ` Gary Thomas [this message]
2012-05-10 20:06         ` Martin Jansa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FABF5F8.3070207@mlbassoc.com \
    --to=gary@mlbassoc.com \
    --cc=poky@yoctoproject.org \
    --cc=raj.khem@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.