📄 cf.s
字号:
! SPARC assembly: ! Automatically generated by ASM.SPARCGenerator.section ".data".GLOBALFIELD:.ARRAY_OUT_OF_BOUND: .asciz "testcases/dataflow/cf.dcf:%d: runtime error: array out of bound; accessing: %d, array size: %d\n" .align 4.DIVISION_ZERO: .asciz "testcases/dataflow/cf.dcf:%d: runtime error: division to zero\n" .align 4.CONTROL_FALLING_OFF: .asciz "testcases/dataflow/cf.dcf:%s: runtime error: control falling off the end of the method: %s , missing a return value\n" .align 4.section ".text" .align 4 .global main .globl mainmain: sethi %hi(.GLOBALFIELD), %g2 or %g2, %lo(.GLOBALFIELD), %g2 save %sp, -96, %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] mov 8, %g3 sub %sp, %g3, %sp sethi %hi(.CalloutArg1), %g1 or %g1, %lo(.CalloutArg1), %g1 ! Preparing parameter -> sp% + offset: st %g1, [%sp+92] ! Move instruction for the int literal: 2 mov 2, %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(.CalloutArg2), %g1 or %g1, %lo(.CalloutArg2), %g1 ! Preparing parameter -> sp% + offset: st %g1, [%sp+92] ! Move instruction for the int literal: -1 mov -1, %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(.CalloutArg3), %g1 or %g1, %lo(.CalloutArg3), %g1 ! Preparing parameter -> sp% + offset: st %g1, [%sp+92] ! Move instruction for the int literal: 9 mov 9, %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(.CalloutArg4), %g1 or %g1, %lo(.CalloutArg4), %g1 ! Preparing parameter -> sp% + offset: st %g1, [%sp+92] ! Move instruction for the int literal: 7 mov 7, %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 !Return statement for method: ret restore !Datasection.CalloutArg1: .asciz "1+1=%d\n" .align 8.CalloutArg2: .asciz "1-2=%d\n" .align 8.CalloutArg3: .asciz "3*3=%d\n" .align 8.CalloutArg4: .asciz "1+2*3=%d\n" .align 8.MDNAME_main: .asciz "'main( )'" .align 8.MDNAME_main_LINE_NO: .asciz "11" .align 8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -