Create  Edit  Diff  FrontPage  Index  Search  Changes  Login

はじめてのひき - FizzBuzzAsm_SH-3 Diff

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

! Version

% sh3-linux-gcc41 -v
Using built-in specs.
Target: sh-linux
コンフィグオプション: ../configure --prefix=/usr --program-prefix=sh-linux- --program-suffix=41 --mandir=/usr/share/man --infodir=/usr/sh-linux/share/info --datadir=/usr/sh-linux/share --target=sh-linux --host=i686-redhat-linux-gnu --build=i686-redhat-linux-gnu --with-system-zlib --with-gxx-include-dir=/usr/sh-linux/include/c++/4.1.2 --includedir=/usr/sh-linux/include --enable-checking=release --with-system-zlib --disable-libunwind-exceptions --enable-shared --enable-__cxa_atexit --enable-c99 --enable-threads=posix --enable-long-long --enable-multilib --with-multilib-list=m3,m4,m4-nofpu --with-endian=little --with-cpu=sh3 --enable-languages=c,c++,objc,obj-c++,java --disable-libgcj
スレッドモデル: posix
gcc バージョン 4.1.2 20070925 (Red Hat 4.1.2-33)

! Optimized


fizzbuzz.o:     file format elf32-sh-linux

Disassembly of section .text:

00000000 <main>:
    0: 86 2f       mov.l r8,@-r15
    2: 96 2f       mov.l r9,@-r15
    4: a6 2f       mov.l r10,@-r15
    6: e6 2f       mov.l r14,@-r15
    8: 22 4f       sts.l pr,@-r15
    a: f3 6e       mov r15,r14
    c: 01 e8       mov #1,r8
    e: 00 e9       mov #0,r9
   10: 22 da       mov.l 9c <main+0x9c>,r10 ! 0 <main>
   12: 23 d1       mov.l a0 <main+0xa0>,r1 ! 88888889
   14: 1d 38       dmuls.l r1,r8
   16: 0a 01       sts mach,r1
   18: 8c 31       add r8,r1
   1a: 21 41       shar r1
   1c: 21 41       shar r1
   1e: 21 41       shar r1
   20: 87 39       cmp/gt r8,r9
   22: 2a 32       subc r2,r2
   24: 28 31       sub r2,r1
   26: 13 62       mov r1,r2
   28: 04 e0       mov #4,r0
   2a: 0d 42       shld r0,r2
   2c: 18 32       sub r1,r2
   2e: 20 38       cmp/eq r2,r8
   30: 04 8b       bf 3c <main+0x3c>
   32: 1c d4       mov.l a4 <main+0xa4>,r4 ! 0 <main>
   34: 0b 4a       jsr @r10
   36: 01 78       add #1,r8
   38: 27 a0       bra 8a <main+0x8a>
   3a: 83 60       mov r8,r0
   3c: 1a d1       mov.l a8 <main+0xa8>,r1 ! 66666667
   3e: 1d 38       dmuls.l r1,r8
   40: 0a 02       sts mach,r2
   42: 21 42       shar r2
   44: 87 39       cmp/gt r8,r9
   46: 1a 31       subc r1,r1
   48: 18 32       sub r1,r2
   4a: 23 61       mov r2,r1
   4c: 08 41       shll2 r1
   4e: 2c 31       add r2,r1
   50: 10 38       cmp/eq r1,r8
   52: 05 8f       bf.s 60 <main+0x60>
   54: 87 39       cmp/gt r8,r9
   56: 15 d4       mov.l ac <main+0xac>,r4 ! c
   58: 0b 4a       jsr @r10
   5a: 01 78       add #1,r8
   5c: 15 a0       bra 8a <main+0x8a>
   5e: 83 60       mov r8,r0
   60: 13 d1       mov.l b0 <main+0xb0>,r1 ! 55555556
   62: 1d 38       dmuls.l r1,r8
   64: 0a 02       sts mach,r2
   66: 1a 31       subc r1,r1
   68: 18 32       sub r1,r2
   6a: 23 61       mov r2,r1
   6c: 1c 31       add r1,r1
   6e: 2c 31       add r2,r1
   70: 10 38       cmp/eq r1,r8
   72: 04 8b       bf 7e <main+0x7e>
   74: 0f d4       mov.l b4 <main+0xb4>,r4 ! 14
   76: 0b 4a       jsr @r10
   78: 01 78       add #1,r8
   7a: 06 a0       bra 8a <main+0x8a>
   7c: 83 60       mov r8,r0
   7e: 0e d4       mov.l b8 <main+0xb8>,r4 ! 1c
   80: 0e d0       mov.l bc <main+0xbc>,r0 ! 0 <main>
   82: 0b 40       jsr @r0
   84: 83 65       mov r8,r5
   86: 01 78       add #1,r8
   88: 83 60       mov r8,r0
   8a: 65 88       cmp/eq #101,r0
   8c: c1 8b       bf 12 <main+0x12>
   8e: e3 6f       mov r14,r15
   90: 26 4f       lds.l @r15+,pr
   92: f6 6e       mov.l @r15+,r14
   94: f6 6a       mov.l @r15+,r10
   96: f6 69       mov.l @r15+,r9
   98: 0b 00       rts
   9a: f6 68       mov.l @r15+,r8
   9c: 00 00       .word 0x0000
9c: R_SH_DIR32 puts
   9e: 00 00       .word 0x0000
   a0: 89 88       cmp/eq #-119,r0
   a2: 88 88       cmp/eq #-120,r0
   a4: 00 00       .word 0x0000
a4: R_SH_DIR32 .rodata.str1.4
   a6: 00 00       .word 0x0000
   a8: 67 66       not r6,r6
   aa: 66 66       mov.l @r6+,r6
   ac: 0c 00       mov.b @(r0,r0),r0
ac: R_SH_DIR32 .rodata.str1.4
   ae: 00 00       .word 0x0000
   b0: 56 55       mov.l @(24,r5),r5
   b2: 55 55       mov.l @(20,r5),r5
   b4: 14 00       mov.b r1,@(r0,r0)
b4: R_SH_DIR32 .rodata.str1.4
   b6: 00 00       .word 0x0000
   b8: 1c 00       mov.b @(r0,r1),r0
b8: R_SH_DIR32 .rodata.str1.4
   ba: 00 00       .word 0x0000
   bc: 00 00       .word 0x0000
bc: R_SH_DIR32 printf
...

! Normal


fizzbuzz.o:     file format elf32-sh-linux

Disassembly of section .text:

00000000 <main>:
    0: e6 2f       mov.l r14,@-r15
    2: 22 4f       sts.l pr,@-r15
    4: f0 7f       add #-16,r15
    6: f3 6e       mov r15,r14
    8: e3 62       mov r14,r2
    a: d0 72       add #-48,r2
    c: 01 e1       mov #1,r1
    e: 1f 12       mov.l r1,@(60,r2)
   10: 6f a0       bra f2 <main+0xf2>
   12: 09 00       nop
   14: e3 61       mov r14,r1
   16: d0 71       add #-48,r1
   18: 1f 52       mov.l @(60,r1),r2
   1a: 3c d1       mov.l 10c <main+0x10c>,r1 ! 88888889
   1c: 1d 32       dmuls.l r1,r2
   1e: 0a 01       sts mach,r1
   20: 2c 31       add r2,r1
   22: 21 41       shar r1
   24: 21 41       shar r1
   26: 21 41       shar r1
   28: 13 63       mov r1,r3
   2a: 00 e1       mov #0,r1
   2c: 27 31       cmp/gt r2,r1
   2e: 1a 31       subc r1,r1
   30: 33 67       mov r3,r7
   32: 18 37       sub r1,r7
   34: 72 2e       mov.l r7,@r14
   36: e2 61       mov.l @r14,r1
   38: 04 e3       mov #4,r3
   3a: 3d 41       shld r3,r1
   3c: e2 67       mov.l @r14,r7
   3e: 78 31       sub r7,r1
   40: 23 63       mov r2,r3
   42: 18 33       sub r1,r3
   44: 32 2e       mov.l r3,@r14
   46: e2 67       mov.l @r14,r7
   48: 78 27       tst r7,r7
   4a: 06 8b       bf 5a <main+0x5a>
   4c: 30 d1       mov.l 110 <main+0x110>,r1 ! 0 <main>
   4e: 13 64       mov r1,r4
   50: 30 d1       mov.l 114 <main+0x114>,r1 ! 0 <main>
   52: 0b 41       jsr @r1
   54: 09 00       nop
   56: 45 a0       bra e4 <main+0xe4>
   58: 09 00       nop
   5a: e3 61       mov r14,r1
   5c: d0 71       add #-48,r1
   5e: 1f 52       mov.l @(60,r1),r2
   60: 2d d1       mov.l 118 <main+0x118>,r1 ! 66666667
   62: 1d 32       dmuls.l r1,r2
   64: 0a 01       sts mach,r1
   66: 21 41       shar r1
   68: 13 63       mov r1,r3
   6a: 00 e1       mov #0,r1
   6c: 27 31       cmp/gt r2,r1
   6e: 1a 31       subc r1,r1
   70: 33 67       mov r3,r7
   72: 18 37       sub r1,r7
   74: 71 1e       mov.l r7,@(4,r14)
   76: e1 51       mov.l @(4,r14),r1
   78: 08 41       shll2 r1
   7a: e1 53       mov.l @(4,r14),r3
   7c: 3c 31       add r3,r1
   7e: 23 67       mov r2,r7
   80: 18 37       sub r1,r7
   82: 71 1e       mov.l r7,@(4,r14)
   84: e1 51       mov.l @(4,r14),r1
   86: 18 21       tst r1,r1
   88: 06 8b       bf 98 <main+0x98>
   8a: 24 d1       mov.l 11c <main+0x11c>,r1 ! c
   8c: 13 64       mov r1,r4
   8e: 21 d1       mov.l 114 <main+0x114>,r1 ! 0 <main>
   90: 0b 41       jsr @r1
   92: 09 00       nop
   94: 26 a0       bra e4 <main+0xe4>
   96: 09 00       nop
   98: e3 61       mov r14,r1
   9a: d0 71       add #-48,r1
   9c: 1f 52       mov.l @(60,r1),r2
   9e: 20 d1       mov.l 120 <main+0x120>,r1 ! 55555556
   a0: 1d 32       dmuls.l r1,r2
   a2: 0a 03       sts mach,r3
   a4: 00 e1       mov #0,r1
   a6: 27 31       cmp/gt r2,r1
   a8: 1a 31       subc r1,r1
   aa: 33 67       mov r3,r7
   ac: 18 37       sub r1,r7
   ae: 72 1e       mov.l r7,@(8,r14)
   b0: e2 51       mov.l @(8,r14),r1
   b2: 1c 31       add r1,r1
   b4: e2 53       mov.l @(8,r14),r3
   b6: 3c 31       add r3,r1
   b8: 23 67       mov r2,r7
   ba: 18 37       sub r1,r7
   bc: 72 1e       mov.l r7,@(8,r14)
   be: e2 51       mov.l @(8,r14),r1
   c0: 18 21       tst r1,r1
   c2: 06 8b       bf d2 <main+0xd2>
   c4: 17 d1       mov.l 124 <main+0x124>,r1 ! 14
   c6: 13 64       mov r1,r4
   c8: 12 d1       mov.l 114 <main+0x114>,r1 ! 0 <main>
   ca: 0b 41       jsr @r1
   cc: 09 00       nop
   ce: 09 a0       bra e4 <main+0xe4>
   d0: 09 00       nop
   d2: 15 d2       mov.l 128 <main+0x128>,r2 ! 1c
   d4: e3 61       mov r14,r1
   d6: d0 71       add #-48,r1
   d8: 1f 51       mov.l @(60,r1),r1
   da: 23 64       mov r2,r4
   dc: 13 65       mov r1,r5
   de: 13 d1       mov.l 12c <main+0x12c>,r1 ! 0 <main>
   e0: 0b 41       jsr @r1
   e2: 09 00       nop
   e4: e3 62       mov r14,r2
   e6: d0 72       add #-48,r2
   e8: e3 61       mov r14,r1
   ea: d0 71       add #-48,r1
   ec: 1f 51       mov.l @(60,r1),r1
   ee: 01 71       add #1,r1
   f0: 1f 12       mov.l r1,@(60,r2)
   f2: e3 61       mov r14,r1
   f4: d0 71       add #-48,r1
   f6: 1f 52       mov.l @(60,r1),r2
   f8: 64 e1       mov #100,r1
   fa: 17 32       cmp/gt r1,r2
   fc: 8a 8b       bf 14 <main+0x14>
   fe: 10 7e       add #16,r14
  100: e3 6f       mov r14,r15
  102: 26 4f       lds.l @r15+,pr
  104: f6 6e       mov.l @r15+,r14
  106: 0b 00       rts
  108: 09 00       nop
  10a: 09 00       nop
  10c: 89 88       cmp/eq #-119,r0
  10e: 88 88       cmp/eq #-120,r0
...
110: R_SH_DIR32 .rodata
114: R_SH_DIR32 puts
  118: 67 66       not r6,r6
  11a: 66 66       mov.l @r6+,r6
  11c: 0c 00       mov.b @(r0,r0),r0
11c: R_SH_DIR32 .rodata
  11e: 00 00       .word 0x0000
  120: 56 55       mov.l @(24,r5),r5
  122: 55 55       mov.l @(20,r5),r5
  124: 14 00       mov.b r1,@(r0,r0)
124: R_SH_DIR32 .rodata
  126: 00 00       .word 0x0000
  128: 1c 00       mov.b @(r0,r1),r0
128: R_SH_DIR32 .rodata
  12a: 00 00       .word 0x0000
  12c: 00 00       .word 0x0000
12c: R_SH_DIR32 printf
...