📄 12-huge.s
字号:
! SPARC assembly: ! Automatically generated by ASM.SPARCGenerator.section ".data".GLOBALFIELD:.ARRAY_OUT_OF_BOUND: .asciz "testcases/codegen/12-huge.dcf:%d: runtime error: array out of bound; accessing: %d, array size: %d\n" .align 4.DIVISION_ZERO: .asciz "testcases/codegen/12-huge.dcf:%d: runtime error: division to zero\n" .align 4.CONTROL_FALLING_OFF: .asciz "testcases/codegen/12-huge.dcf:%s: runtime error: control falling off the end of the method: %s\n" .align 4.section ".text" .align 4 .global maingurp: save %sp, -184, %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] st %g0, [%fp-124] st %g0, [%fp-128] st %g0, [%fp-132] st %g0, [%fp-136] st %g0, [%fp-140] st %g0, [%fp-144] st %g0, [%fp-148] st %g0, [%fp-152] st %g0, [%fp-156] st %g0, [%fp-160] st %g0, [%fp-164] st %g0, [%fp-168] st %g0, [%fp-172] st %g0, [%fp-176] st %g0, [%fp-180] st %g0, [%fp-184] mov 8, %g3 sub %sp, %g3, %sp sethi %hi(.CalloutArg1), %g1 or %g1, %lo(.CalloutArg1), %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: smul %i0, %i1, %l0 ! Load instruction for the parameter identifier: no need to load e ! Loading parameter <- Ri: sub %l0, %i4, %l1 ! Load instruction for the parameter identifier: no need to load d ! Loading parameter <- Ri: add %l1, %i3, %l0 !Location id store instruction for stmt location: j = expression st %l0, [%fp-8] mov 8, %g3 sub %sp, %g3, %sp sethi %hi(.CalloutArg2), %g1 or %g1, %lo(.CalloutArg2), %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 location identifier: j ld [%fp-8], %l0 ! Move instruction for the int literal: 1 mov 1, %l1 sub %l0, %l1, %l2 !Location id store instruction for stmt location: i = expression st %l2, [%fp-4] mov 8, %g3 sub %sp, %g3, %sp sethi %hi(.CalloutArg3), %g1 or %g1, %lo(.CalloutArg3), %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 ! Move instruction for the int literal: 3 mov 3, %l0 ! Load instruction for the location identifier: i ld [%fp-4], %l1 add %l0, %l1, %l2 !Location id store instruction for stmt location: j = expression st %l2, [%fp-8] mov 8, %g3 sub %sp, %g3, %sp sethi %hi(.CalloutArg4), %g1 or %g1, %lo(.CalloutArg4), %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 location identifier: i ld [%fp-4], %l0 ! Load instruction for the location identifier: j ld [%fp-8], %l1 add %l0, %l1, %l2 ! Move instruction for the int literal: 2 mov 2, %l0 sub %l2, %l0, %l1 !Location id store instruction for stmt location: k = expression st %l1, [%fp-12] mov 8, %g3 sub %sp, %g3, %sp sethi %hi(.CalloutArg5), %g1 or %g1, %lo(.CalloutArg5), %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 location identifier: k ld [%fp-12], %l0 ! Load instruction for the location identifier: j ld [%fp-8], %l1 sub %l0, %l1, %l2 !Location id store instruction for stmt location: l = expression st %l2, [%fp-16] mov 8, %g3 sub %sp, %g3, %sp sethi %hi(.CalloutArg6), %g1 or %g1, %lo(.CalloutArg6), %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 location identifier: i ld [%fp-4], %l0 ! Load instruction for the location identifier: k ld [%fp-12], %l1 add %l0, %l1, %l2 !Location id store instruction for stmt location: m = expression st %l2, [%fp-20] mov 16, %g3 sub %sp, %g3, %sp sethi %hi(.CalloutArg7), %g1 or %g1, %lo(.CalloutArg7), %g1 ! Preparing parameter -> sp% + offset: st %g1, [%sp+92] ! Load instruction for the location identifier: k ld [%fp-12], %l0 ! Preparing parameter -> sp%+offset: st %l0, [%sp+96] ! Load instruction for the location identifier: m ld [%fp-20], %l0 ! Preparing parameter -> sp%+offset: st %l0, [%sp+100] ! Preparing parameter -> Ro: ld [%sp+92], %o0 ! Preparing parameter -> Ro: ld [%sp+96], %o1 ! Preparing parameter -> Ro: ld [%sp+100], %o2 call printf,0 nop mov %o0, %l0 mov 16, %g3 add %sp, %g3, %sp ! Load instruction for the location identifier: i ld [%fp-4], %l0 ! Load instruction for the location identifier: j ld [%fp-8], %l1 ! Load instruction for the location identifier: k ld [%fp-12], %l2 ! Load instruction for the location identifier: m ld [%fp-20], %l3 sub %l2, %l3, %l4 sub %l1, %l4, %l2 add %l0, %l2, %l1 !Location id store instruction for stmt location: n = expression st %l1, [%fp-24] mov 8, %g3 sub %sp, %g3, %sp sethi %hi(.CalloutArg8), %g1 or %g1, %lo(.CalloutArg8), %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: ! Move instruction for the int literal: 50 mov 50, %l0 cmp %i0, %l0 bg .True10 nop mov 0, %l1 b .End10 nop.True10: mov 1, %l1.End10: cmp %g0, %l1 be .False9 nop ! 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: add %i0, %i1, %l0 ! Load instruction for the location identifier: l ld [%fp-16], %l1 add %l0, %l1, %l2 !Location id store instruction for stmt location: o = expression st %l2, [%fp-28] ! Load instruction for the location identifier: l ld [%fp-16], %l0 ! Load instruction for the location identifier: m ld [%fp-20], %l1 sub %l0, %l1, %l2 !Location id store instruction for stmt location: j = expression st %l2, [%fp-8] ! Load instruction for the parameter identifier: no need to load c ! Loading parameter <- Ri: cmp %g0, %i2 be .False11 nop ! Load instruction for the parameter identifier: no need to load e ! Loading parameter <- Ri: ! Load instruction for the parameter identifier: no need to load f ! Loading parameter <- Ri: add %i4, %i5, %l0 ! Load instruction for the parameter identifier: no need to load h ! Loading parameter <- fp%+offset: ld [%fp+96], %l1 ! Load instruction for the location identifier: n ld [%fp-24], %l2 add %l1, %l2, %l3 sub %l0, %l3, %l1 !Location id store instruction for stmt location: l = expression st %l1, [%fp-16] ! Load instruction for the parameter identifier: no need to load f ! Loading parameter <- Ri: ! Move instruction for the int literal: 1 mov 1, %l0 sub %i5, %l0, %l1 !Location id store instruction for stmt location for Parameter: f = expression ! Store parameter -> Ri: mov %l1, %i5 ! Load instruction for the location identifier: o ld [%fp-28], %l0 ! Move instruction for the int literal: 3 mov 3, %l1 sub %l0, %l1, %l2 !Location id store instruction for stmt location: q = expression st %l2, [%fp-36] b .End11 nop.False11: ! Load instruction for the location identifier: o ld [%fp-28], %l0 ! Move instruction for the int literal: 3 mov 3, %l1 add %l0, %l1, %l2 !Location id store instruction for stmt location: q = expression st %l2, [%fp-36].End11: ! Load instruction for the parameter identifier: no need to load c ! Loading parameter <- Ri: cmp %i2, %g0 be .OrE1False13 nop mov 1, %g3 b .OrEnd13 nop.OrE1False13: ! Load instruction for the parameter identifier: no need to load g ! Loading parameter <- fp%+offset: ld [%fp+92], %l0 mov %l0, %g3.OrEnd13: mov %g3, %l0 cmp %g0, %l0 be .False12 nop ! Load instruction for the parameter identifier: no need to load f ! Loading parameter <- Ri: ! Load instruction for the parameter identifier: no need to load e ! Loading parameter <- Ri: add %i5, %i4, %l0 ! Load instruction for the parameter identifier: no need to load h ! Loading parameter <- fp%+offset: ld [%fp+96], %l1 ! Load instruction for the parameter identifier: no need to load b ! Loading parameter <- Ri: sub %l1, %i1, %l2 add %l0, %l2, %l1 !Location id store instruction for stmt location: s = expression st %l1, [%fp-44] b .End12 nop.False12:.End12: b .End9 nop.False9: ! Load instruction for the parameter identifier: no need to load b ! Loading parameter <- Ri: ! Load instruction for the parameter identifier: no need to load a ! Loading parameter <- Ri: sub %i1, %i0, %l0 !Location id store instruction for stmt location: o = expression st %l0, [%fp-28] ! Load instruction for the location identifier: l ld [%fp-16], %l0 ! Load instruction for the location identifier: m ld [%fp-20], %l1 add %l0, %l1, %l2 !Location id store instruction for stmt location: j = expression st %l2, [%fp-8] ! Load instruction for the parameter identifier: no need to load g ! Loading parameter <- fp%+offset: ld [%fp+92], %l0 cmp %g0, %l0 be .False14 nop ! Move instruction for the int literal: 3 mov 3, %l0 ! Load instruction for the parameter identifier: no need to load a ! Loading parameter <- Ri: ! Load instruction for the location identifier: o ld [%fp-28], %l1 sub %i0, %l1, %l2 add %l0, %l2, %l1 !Location id store instruction for stmt location for Parameter: f = expression ! Store parameter -> Ri: mov %l1, %i5 ! Move instruction for the int literal: 3 mov 3, %l0 ! Load instruction for the location identifier: o ld [%fp-28], %l1 sub %l0, %l1, %l2 !Location id store instruction for stmt location: q = expression st %l2, [%fp-36] ! Load instruction for the parameter identifier: no need to load f ! Loading parameter <- Ri: ! Load instruction for the location identifier: q ld [%fp-36], %l0 add %i5, %l0, %l1 !Location id store instruction for stmt location: s = expression st %l1, [%fp-44] b .End14 nop.False14: ! Move instruction for the int literal: 3 mov 3, %l0 ! Load instruction for the location identifier: o ld [%fp-28], %l1 ! Load instruction for the parameter identifier: no need to load a ! Loading parameter <- Ri: sub %l1, %i0, %l2 ! Move instruction for the int literal: 2 mov 2, %l1 sub %l2, %l1, %l3 add %l0, %l3, %l1 !Location id store instruction for stmt location: s = expression st %l1, [%fp-44] ! Load instruction for the location identifier: s ld [%fp-44], %l0 ! Load instruction for the location identifier: j ld [%fp-8], %l1 add %l0, %l1, %l2 !Location id store instruction for stmt location: q = expression st %l2, [%fp-36] ! Load instruction for the location identifier: s ld [%fp-44], %l0 ! Load instruction for the location identifier: q ld [%fp-36], %l1 add %l0, %l1, %l2 ! Load instruction for the location identifier: q ld [%fp-36], %l0 sub %l2, %l0, %l1 !Location id store instruction for stmt location for Parameter: f = expression ! Store parameter -> Ri: mov %l1, %i5.End14:.End9: mov 8, %g3 sub %sp, %g3, %sp sethi %hi(.CalloutArg15), %g1 or %g1, %lo(.CalloutArg15), %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 e
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -