------- Comment #2 from raj dot khem at gmail dot com  2010-05-27 07:12 -------
here is diff of two assembly outputs

$ diff copypage-v4wb.s copypage-v4wb.no-ipa-sra.S -u
--- copypage-v4wb.s     2010-05-27 00:11:03.130607878 -0700
+++ copypage-v4wb.no-ipa-sra.S  2010-05-27 00:10:54.790615578 -0700
@@ -120,19 +120,30 @@
 v4wb_copy_user_highpage:
        @ args = 0, pretend = 0, frame = 0
        @ frame_needed = 0, uses_anonymous_args = 0
-       stmfd   sp!, {r4, lr}
-       mov     r1, sp
-       bic     r4, r1, #8128
+       stmfd   sp!, {r4, r5, r6, lr}
+       mov     ip, sp
+       bic     r4, ip, #8128
        bic     r4, r4, #63
-       ldr     r1, [r4, #4]
-       add     r1, r1, #1
-       str     r1, [r4, #4]
-       ldr     r1, [r4, #4]
-       add     r1, r1, #1
-       str     r1, [r4, #4]
-       ldr     r1, [r3, #0]
-       ldr     r1, [r1, #332]
-       tst     r1, #1
+       ldr     ip, [r4, #4]
+       add     ip, ip, #1
+       str     ip, [r4, #4]
+       ldr     ip, .L8
+       ldr     lr, [r4, #4]
+       ldr     r6, [ip, #0]
+       add     lr, lr, #1
+       rsb     r6, r6, r0
+       mov     r6, r6, asr #5
+       mov     r6, r6, asl #12
+       add     r6, r6, #-1073741824
+       str     lr, [r4, #4]
+       ldr     r5, [ip, #0]
+       ldr     r0, [r3, #0]
+       rsb     r5, r5, r1
+       ldr     r0, [r0, #332]
+       mov     r5, r5, asr #5
+       mov     r5, r5, asl #12
+       tst     r0, #1
+       add     r5, r5, #-1073741824
        beq     .L6
        bic     r2, r2, #4080
        bic     r0, r2, #15
@@ -140,6 +151,8 @@
        ldr     r2, [r3, #20]
        bl      arm926_flush_user_cache_range
 .L6:
+       mov     r0, r6
+       mov     r1, r5
        bl      v4wb_copy_user_page
        ldr     r3, [r4, #4]
        sub     r3, r3, #1
@@ -147,7 +160,11 @@
        ldr     r3, [r4, #4]
        sub     r3, r3, #1
        str     r3, [r4, #4]
-       ldmfd   sp!, {r4, pc}
+       ldmfd   sp!, {r4, r5, r6, pc}
+.L9:
+       .align  2
+.L8:
+       .word   mem_map
        .size   v4wb_copy_user_highpage, .-v4wb_copy_user_highpage
        .global v4wb_user_fns
        .section        .init.data,"aw",%progbits


-- 


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

Reply via email to