Create  Edit  Diff  FrontPage  Index  Search  Changes  Login

はじめてのひき - FizzBuzzAsm_arm Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

* ! Version

% arm-none-linux-gnueabi-gcc -v
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /scratch/julian/lite-respin/linux/src/gcc-4.3/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2008q3-72' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin
Thread model: posix
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)

* ! Optimized


fizzbuzz.o:     file format elf32-littlearm

Disassembly of section .text:

00000000 <main>:
    0: e92d4ff8 push {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
    4: e3a04001 mov r4, #1 ; 0x1
    8: e59f50a8 ldr r5, [pc, #168] ; b8 <main+0xb8>
    c: e59f60a8 ldr r6, [pc, #168] ; bc <main+0xbc>
   10: e59f70a8 ldr r7, [pc, #168] ; c0 <main+0xc0>
   14: e59f90a8 ldr r9, [pc, #168] ; c4 <main+0xc4>
   18: e59fa0a8 ldr sl, [pc, #168] ; c8 <main+0xc8>
   1c: e59fb0a8 ldr fp, [pc, #168] ; cc <main+0xcc>
   20: e59f80a8 ldr r8, [pc, #168] ; d0 <main+0xd0>
   24: e0c32495 smull r2, r3, r5, r4
   28: e0833004 add r3, r3, r4
   2c: e1a02fc4 asr r2, r4, #31
   30: e06221c3 rsb r2, r2, r3, asr #3
   34: e1a03202 lsl r3, r2, #4
   38: e0623003 rsb r3, r2, r3
   3c: e1540003 cmp r4, r3
   40: 1a000002 bne 50 <main+0x50>
   44: e1a00008 mov r0, r8
   48: ebfffffe bl 0 <puts>
48: R_ARM_CALL puts
   4c: ea000015 b a8 <main+0xa8>
   50: e0c32496 smull r2, r3, r6, r4
   54: e1a02fc4 asr r2, r4, #31
   58: e06220c3 rsb r2, r2, r3, asr #1
   5c: e1a03102 lsl r3, r2, #2
   60: e0833002 add r3, r3, r2
   64: e1540003 cmp r4, r3
   68: 1a000002 bne 78 <main+0x78>
   6c: e1a0000b mov r0, fp
   70: ebfffffe bl 0 <puts>
70: R_ARM_CALL puts
   74: ea00000b b a8 <main+0xa8>
   78: e0c23497 smull r3, r2, r7, r4
   7c: e0422fc4 sub r2, r2, r4, asr #31
   80: e1a03082 lsl r3, r2, #1
   84: e0833002 add r3, r3, r2
   88: e1540003 cmp r4, r3
   8c: 1a000002 bne 9c <main+0x9c>
   90: e1a0000a mov r0, sl
   94: ebfffffe bl 0 <puts>
94: R_ARM_CALL puts
   98: ea000002 b a8 <main+0xa8>
   9c: e1a00009 mov r0, r9
   a0: e1a01004 mov r1, r4
   a4: ebfffffe bl 0 <printf>
a4: R_ARM_CALL printf
   a8: e2844001 add r4, r4, #1 ; 0x1
   ac: e3540065 cmp r4, #101 ; 0x65
   b0: 1affffdb bne 24 <main+0x24>
   b4: e8bd8ff8 pop {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
   b8: 88888889 .word 0x88888889
   bc: 66666667 .word 0x66666667
   c0: 55555556 .word 0x55555556
   c4: 0000001c .word 0x0000001c
c4: R_ARM_ABS32 .rodata.str1.4
   c8: 00000014 .word 0x00000014
c8: R_ARM_ABS32 .rodata.str1.4
   cc: 0000000c .word 0x0000000c
cc: R_ARM_ABS32 .rodata.str1.4
   d0: 00000000 .word 0x00000000
d0: R_ARM_ABS32 .rodata.str1.4

* ! Normal


fizzbuzz.o:     file format elf32-littlearm

Disassembly of section .text:

00000000 <main>:
    0: e92d4800 push {fp, lr}
    4: e28db004 add fp, sp, #4 ; 0x4
    8: e24dd018 sub sp, sp, #24 ; 0x18
    c: e3a03001 mov r3, #1 ; 0x1
   10: e50b3008 str r3, [fp, #-8]
   14: ea00003e b 114 <main+0x114>
   18: e51b2008 ldr r2, [fp, #-8]
   1c: e59f3104 ldr r3, [pc, #260] ; 128 <main+0x128>
   20: e0c30392 smull r0, r3, r2, r3
   24: e0833002 add r3, r3, r2
   28: e1a011c3 asr r1, r3, #3
   2c: e1a03fc2 asr r3, r2, #31
   30: e0633001 rsb r3, r3, r1
   34: e50b3018 str r3, [fp, #-24]
   38: e51b3018 ldr r3, [fp, #-24]
   3c: e1a03203 lsl r3, r3, #4
   40: e51b1018 ldr r1, [fp, #-24]
   44: e0613003 rsb r3, r1, r3
   48: e0633002 rsb r3, r3, r2
   4c: e50b3018 str r3, [fp, #-24]
   50: e51b2018 ldr r2, [fp, #-24]
   54: e3520000 cmp r2, #0 ; 0x0
   58: 1a000002 bne 68 <main+0x68>
   5c: e59f00c8 ldr r0, [pc, #200] ; 12c <main+0x12c>
   60: ebfffffe bl 0 <puts>
60: R_ARM_CALL puts
   64: ea000027 b 108 <main+0x108>
   68: e51b1008 ldr r1, [fp, #-8]
   6c: e59f30bc ldr r3, [pc, #188] ; 130 <main+0x130>
   70: e0c30391 smull r0, r3, r1, r3
   74: e1a020c3 asr r2, r3, #1
   78: e1a03fc1 asr r3, r1, #31
   7c: e0633002 rsb r3, r3, r2
   80: e50b3014 str r3, [fp, #-20]
   84: e51b3014 ldr r3, [fp, #-20]
   88: e1a03103 lsl r3, r3, #2
   8c: e51b2014 ldr r2, [fp, #-20]
   90: e0833002 add r3, r3, r2
   94: e0633001 rsb r3, r3, r1
   98: e50b3014 str r3, [fp, #-20]
   9c: e51b3014 ldr r3, [fp, #-20]
   a0: e3530000 cmp r3, #0 ; 0x0
   a4: 1a000002 bne b4 <main+0xb4>
   a8: e59f0084 ldr r0, [pc, #132] ; 134 <main+0x134>
   ac: ebfffffe bl 0 <puts>
ac: R_ARM_CALL puts
   b0: ea000014 b 108 <main+0x108>
   b4: e51b2008 ldr r2, [fp, #-8]
   b8: e59f3078 ldr r3, [pc, #120] ; 138 <main+0x138>
   bc: e0c10293 smull r0, r1, r3, r2
   c0: e1a03fc2 asr r3, r2, #31
   c4: e0633001 rsb r3, r3, r1
   c8: e50b3010 str r3, [fp, #-16]
   cc: e51b3010 ldr r3, [fp, #-16]
   d0: e1a03083 lsl r3, r3, #1
   d4: e51b1010 ldr r1, [fp, #-16]
   d8: e0833001 add r3, r3, r1
   dc: e0633002 rsb r3, r3, r2
   e0: e50b3010 str r3, [fp, #-16]
   e4: e51b2010 ldr r2, [fp, #-16]
   e8: e3520000 cmp r2, #0 ; 0x0
   ec: 1a000002 bne fc <main+0xfc>
   f0: e59f0044 ldr r0, [pc, #68] ; 13c <main+0x13c>
   f4: ebfffffe bl 0 <puts>
f4: R_ARM_CALL puts
   f8: ea000002 b 108 <main+0x108>
   fc: e59f003c ldr r0, [pc, #60] ; 140 <main+0x140>
  100: e51b1008 ldr r1, [fp, #-8]
  104: ebfffffe bl 0 <printf>
104: R_ARM_CALL printf
  108: e51b3008 ldr r3, [fp, #-8]
  10c: e2833001 add r3, r3, #1 ; 0x1
  110: e50b3008 str r3, [fp, #-8]
  114: e51b3008 ldr r3, [fp, #-8]
  118: e3530064 cmp r3, #100 ; 0x64
  11c: daffffbd ble 18 <main+0x18>
  120: e24bd004 sub sp, fp, #4 ; 0x4
  124: e8bd8800 pop {fp, pc}
  128: 88888889 .word 0x88888889
  12c: 00000000 .word 0x00000000
12c: R_ARM_ABS32 .rodata
  130: 66666667 .word 0x66666667
  134: 0000000c .word 0x0000000c
134: R_ARM_ABS32 .rodata
  138: 55555556 .word 0x55555556
  13c: 00000014 .word 0x00000014
13c: R_ARM_ABS32 .rodata
  140: 0000001c .word 0x0000001c
140: R_ARM_ABS32 .rodata