⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 12-huge.s

📁 用Java实现的编译器。把源代码编译成SPARC汇编程序
💻 S
📖 第 1 页 / 共 4 页
字号:
	ld	[%fp-32], %l0	add	%l2, %l0, %l1	! Load instruction for the location identifier:  u	ld	[%fp-52], %l0	sub	%l1, %l0, %l2	! Preparing parameter -> sp%+offset:  	st	%l2, [%sp+96]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	! Preparing parameter -> Ro:  	ld	[%sp+96], %o1	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp.End29:.End27:	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg32), %g1	or	%g1, %lo(.CalloutArg32), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	! Load instruction for the parameter identifier: no need to load  a	! Loading parameter <- Ri:  	! Load instruction for the parameter identifier: no need to load  b	! Loading parameter <- Ri:  	sub	%i0, %i1, %l0	! Load instruction for the parameter identifier: no need to load  d	! Loading parameter <- Ri:  	add	%l0, %i3, %l1	! Load instruction for the parameter identifier: no need to load  e	! Loading parameter <- Ri:  	add	%l1, %i4, %l0	! Load instruction for the parameter identifier: no need to load  f	! Loading parameter <- Ri:  	add	%l0, %i5, %l1	! Load instruction for the parameter identifier: no need to load  h	! Loading parameter <- fp%+offset:  	ld	[%fp+96], %l0	add	%l1, %l0, %l2	! Load instruction for the location identifier:  i	ld	[%fp-4], %l0	add	%l2, %l0, %l1	! Load instruction for the location identifier:  j	ld	[%fp-8], %l0	add	%l1, %l0, %l2	! Load instruction for the location identifier:  k	ld	[%fp-12], %l0	add	%l2, %l0, %l1	! Load instruction for the location identifier:  l	ld	[%fp-16], %l0	add	%l1, %l0, %l2	! Load instruction for the location identifier:  m	ld	[%fp-20], %l0	add	%l2, %l0, %l1	! Load instruction for the location identifier:  n	ld	[%fp-24], %l0	sub	%l1, %l0, %l2	! Load instruction for the location identifier:  o	ld	[%fp-28], %l0	add	%l2, %l0, %l1	! Load instruction for the location identifier:  p	ld	[%fp-32], %l0	sub	%l1, %l0, %l2	! Load instruction for the location identifier:  q	ld	[%fp-36], %l0	add	%l2, %l0, %l1	! Load instruction for the location identifier:  r	ld	[%fp-40], %l0	sub	%l1, %l0, %l2	! Load instruction for the location identifier:  s	ld	[%fp-44], %l0	add	%l2, %l0, %l1	! Load instruction for the location identifier:  t	ld	[%fp-48], %l0	sub	%l1, %l0, %l2	! Load instruction for the location identifier:  u	ld	[%fp-52], %l0	add	%l2, %l0, %l1	! Load instruction for the location identifier:  v	ld	[%fp-56], %l0	sub	%l1, %l0, %l2	! Load instruction for the location identifier:  w	ld	[%fp-60], %l0	add	%l2, %l0, %l1	! Load instruction for the location identifier:  x	ld	[%fp-64], %l0	sub	%l1, %l0, %l2	! Load instruction for the location identifier:  y	ld	[%fp-68], %l0	add	%l2, %l0, %l1	! Load instruction for the location identifier:  z	ld	[%fp-72], %l0	sub	%l1, %l0, %l2	! Load instruction for the location identifier:  a1	ld	[%fp-76], %l0	add	%l2, %l0, %l1	! Load instruction for the location identifier:  a2	ld	[%fp-80], %l0	add	%l1, %l0, %l2	! Load instruction for the location identifier:  a3	ld	[%fp-84], %l0	add	%l2, %l0, %l1	! Load instruction for the location identifier:  a4	ld	[%fp-88], %l0	sub	%l1, %l0, %l2	mov	%l2, %i0	!Return statement for method:	ret	restore	!Run time error: Control falling off detected and reported here:	sethi	%hi(.CONTROL_FALLING_OFF), %o0	or	%o0, %lo(.CONTROL_FALLING_OFF), %o0	sethi	%hi(.MDNAME_gurp_LINE_NO), %o1	or	%o1, %lo(.MDNAME_gurp_LINE_NO), %o1	sethi	%hi(.MDNAME_gurp), %o2	or	%o2, %lo(.MDNAME_gurp), %o2	call	printf,0	nop	call	exit,0	nop	.globl mainmain:	sethi	%hi(.GLOBALFIELD), %g2	or	%g2, %lo(.GLOBALFIELD), %g2	save	%sp, -120, %sp	st	%g0, [%fp-4]	st	%g0, [%fp-8]	st	%g0, [%fp-12]	st	%g0, [%fp-16]	st	%g0, [%fp-20]	st	%g0, [%fp-24]	st	%g0, [%fp-28]	st	%g0, [%fp-32]	st	%g0, [%fp-36]	st	%g0, [%fp-40]	st	%g0, [%fp-44]	st	%g0, [%fp-48]	st	%g0, [%fp-52]	st	%g0, [%fp-56]	st	%g0, [%fp-60]	st	%g0, [%fp-64]	st	%g0, [%fp-68]	st	%g0, [%fp-72]	st	%g0, [%fp-76]	st	%g0, [%fp-80]	st	%g0, [%fp-84]	st	%g0, [%fp-88]	st	%g0, [%fp-92]	st	%g0, [%fp-96]	st	%g0, [%fp-100]	st	%g0, [%fp-104]	st	%g0, [%fp-108]	st	%g0, [%fp-112]	st	%g0, [%fp-116]	st	%g0, [%fp-120]	! Move instruction for the int literal:  3	mov	3, %l0	!Location id store instruction for stmt location:   x = expression	st	%l0, [%fp-4].WhileCondition33:	! Load instruction for the location identifier:  x	ld	[%fp-4], %l0	! Move instruction for the int literal:  2	mov	2, %l1	smul	%l0, %l1, %l2	! Move instruction for the int literal:  9	mov	9, %l0	cmp	%l2, %l0	bl	.True34	nop	mov	0, %l1	b	.End34	nop.True34:	mov	1, %l1.End34:	cmp	%g0, %l1	be	.End33	nop	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg35), %g1	or	%g1, %lo(.CalloutArg35), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	mov	32, %g3	sub	%sp, %g3, %sp	! Move instruction for the int literal:  1	mov	1, %l0	! Load instruction for the location identifier:  x	ld	[%fp-4], %l1	add	%l0, %l1, %l2	! Preparing parameter -> %sp + offset:  	st	%l2, [%sp+100]	! Load instruction for the location identifier:  x	ld	[%fp-4], %l0	! ExpUminus encountered:  subtract 0 from the expression value:	sub	%g0, %l0, %l1	! Preparing parameter -> %sp + offset:  	st	%l1, [%sp+104]	mov	1, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+108]	! Move instruction for the int literal:  3	mov	3, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+112]	! Move instruction for the int literal:  2	mov	2, %l0	! Load instruction for the location identifier:  x	ld	[%fp-4], %l1	add	%l0, %l1, %l2	! Preparing parameter -> %sp + offset:  	st	%l2, [%sp+116]	! Move instruction for the int literal:  1	mov	1, %l0	! Load instruction for the location identifier:  x	ld	[%fp-4], %l1	sub	%l0, %l1, %l2	! Preparing parameter -> %sp + offset:  	st	%l2, [%sp+120]	mov	1, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+92]	! Move instruction for the int literal:  4	mov	4, %l0	! Load instruction for the location identifier:  x	ld	[%fp-4], %l1	sub	%l0, %l1, %l2	! Preparing parameter -> %sp + offset:  	st	%l2, [%sp+96]	! Preparing parameter -> Ro:  	ld	[%sp+100], %o0	! Preparing parameter -> Ro:  	ld	[%sp+104], %o1	! Preparing parameter -> Ro:  	ld	[%sp+108], %o2	! Preparing parameter -> Ro:  	ld	[%sp+112], %o3	! Preparing parameter -> Ro:  	ld	[%sp+116], %o4	! Preparing parameter -> Ro:  	ld	[%sp+120], %o5	call	gurp,0	nop	mov	%o0, %l0	mov	32, %g3	add	%sp, %g3, %sp	!Location id store instruction for stmt location:   z = expression	st	%l0, [%fp-12]	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg36), %g1	or	%g1, %lo(.CalloutArg36), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg37), %g1	or	%g1, %lo(.CalloutArg37), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Load instruction for the location identifier:  x	ld	[%fp-4], %l0	! Preparing parameter -> sp%+offset:  	st	%l0, [%sp+96]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	! Preparing parameter -> Ro:  	ld	[%sp+96], %o1	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg38), %g1	or	%g1, %lo(.CalloutArg38), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	mov	32, %g3	sub	%sp, %g3, %sp	! Move instruction for the int literal:  1	mov	1, %l0	! Load instruction for the location identifier:  x	ld	[%fp-4], %l1	add	%l0, %l1, %l2	! Preparing parameter -> %sp + offset:  	st	%l2, [%sp+100]	! Load instruction for the location identifier:  x	ld	[%fp-4], %l0	! ExpUminus encountered:  subtract 0 from the expression value:	sub	%g0, %l0, %l1	! Preparing parameter -> %sp + offset:  	st	%l1, [%sp+104]	mov	1, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+108]	! Move instruction for the int literal:  3	mov	3, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+112]	! Move instruction for the int literal:  2	mov	2, %l0	! Load instruction for the location identifier:  x	ld	[%fp-4], %l1	add	%l0, %l1, %l2	! Preparing parameter -> %sp + offset:  	st	%l2, [%sp+116]	! Load instruction for the location identifier:  x	ld	[%fp-4], %l0	! Move instruction for the int literal:  1	mov	1, %l1	add	%l0, %l1, %l2	! Preparing parameter -> %sp + offset:  	st	%l2, [%sp+120]	mov	1, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+92]	! Move instruction for the int literal:  0	mov	0, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+96]	! Preparing parameter -> Ro:  	ld	[%sp+100], %o0	! Preparing parameter -> Ro:  	ld	[%sp+104], %o1	! Preparing parameter -> Ro:  	ld	[%sp+108], %o2	! Preparing parameter -> Ro:  	ld	[%sp+112], %o3	! Preparing parameter -> Ro:  	ld	[%sp+116], %o4	! Preparing parameter -> Ro:  	ld	[%sp+120], %o5	call	gurp,0	nop	mov	%o0, %l0	mov	32, %g3	add	%sp, %g3, %sp	!Location id store instruction for stmt location:   z = expression	st	%l0, [%fp-12]	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg39), %g1	or	%g1, %lo(.CalloutArg39), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	mov	32, %g3	sub	%sp, %g3, %sp	! Move instruction for the int literal:  3	mov	3, %l0	! Load instruction for the location identifier:  x	ld	[%fp-4], %l1	sub	%l0, %l1, %l2	! Preparing parameter -> %sp + offset:  	st	%l2, [%sp+100]	! Move instruction for the int literal:  -8	mov	-8, %l0	! Load instruction for the location identifier:  x	ld	[%fp-4], %l1	add	%l0, %l1, %l2	! Preparing parameter -> %sp + offset:  	st	%l2, [%sp+104]	mov	0, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+108]	! Move instruction for the int literal:  12	mov	12, %l0	! Move instruction for the int literal:  3	mov	3, %l1	! Load instruction for the location identifier:  x	ld	[%fp-4], %l2	smul	%l1, %l2, %l3	sub	%l0, %l3, %l1	! Preparing parameter -> %sp + offset:  	st	%l1, [%sp+112]	! Move instruction for the int literal:  16	mov	16, %l0	! Load instruction for the location identifier:  x	ld	[%fp-4], %l1	add	%l0, %l1, %l2	! Preparing parameter -> %sp + offset:  	st	%l2, [%sp+116]	! Move instruction for the int literal:  1	mov	1, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+120]	mov	1, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+92]	! Move instruction for the int literal:  8	mov	8, %l0	! Load instruction for the location identifier:  x	ld	[%fp-4], %l1	sub	%l0, %l1, %l2	! Preparing parameter -> %sp + offset:  	st	%l2, [%sp+96]	! Preparing parameter -> Ro:  	ld	[%sp+100], %o0	! Preparing parameter -> Ro:  	ld	[%sp+104], %o1	! Preparing parameter -> Ro:  	ld	[%sp+108], %o2	! Preparing parameter -> Ro:  	ld	[%sp+112], %o3	! Preparing parameter -> Ro:  	ld	[%sp+116], %o4	! Preparing parameter -> Ro:  	ld	[%sp+120], %o5	call	gurp,0	nop	mov	%o0, %l0	mov	32, %g3	add	%sp, %g3, %sp	!Location id store instruction for stmt location:   y = expression	st	%l0, [%fp-8]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -