Messages in this thread | | | Subject | Re: [2.6.30-rc8] gcc 3.3 : __udivdi3 undefined. | From | Tetsuo Handa <> | Date | Fri, 05 Jun 2009 13:00:28 +0900 |
| |
Andrew Morton wrote: > Well, that tells us the .c file, but not the location within it. > Please check the .loc info as I suggested.
.loc 1 51 0 movl -52(%ebp), %ebx # start_phys_aligned sbbl %edi, %ebx .loc 1 42 0 movl %edx, -16(%ebp) # pattern .loc 1 51 0 subl %ecx, %eax # size pushl $0 .loc 1 42 0 movl 20(%ebp), %edx # size .loc 1 51 0 sbbl %ebx, %edx pushl $8 .LCFI12: call __udivdi3 popl %ebx .loc 1 53 0 movl $0, -36(%ebp) # start_bad .loc 1 52 0 movl -56(%ebp), %ebx # start_phys_aligned subl $1073741824, %ebx .loc 1 56 0 cmpl %edx, -36(%ebp) # start_bad .loc 1 51 0 popl %esi movl %edx, %edi movl %eax, %esi # count .loc 1 52 0
> Perhaps it's this: > > static void __init memtest(u64 pattern, u64 start_phys, u64 size) > { > u64 i, count; > u64 *start; > u64 start_bad, last_bad; > u64 start_phys_aligned; > size_t incr; > > incr = sizeof(pattern); > start_phys_aligned = ALIGN(start_phys, incr); > count = (size - (start_phys_aligned - start_phys))/incr; Bingo!
| |