Create  Edit  Diff  FrontPage  Index  Search  Changes  Login

FizzBuzzAsm_SH-4

Version

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

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