📄 play.s
字号:
addi r29,#32,r29
nop
;END EPILOGUE
.eop ;wavbuf_switch
.stabs "wavbuf_switch:F1",36,0,161,_wavbuf_switch
.stabn 192,0,0,LBB6
.stabn 192,0,0,LBB7
.stabn 224,0,0,LBE7
.stabn 224,0,0,LBE6
.align 2
.globl _PCM_fillbuf
_PCM_fillbuf:
LM69:
.stabn 68,0,183,LM69
;#PROLOGUE
addi r29,#-32,r29 ; temp= 0, regs= 8, args= 0, sfo= -8
st 16[r29],r31
st 20[r29],r30
;.mask 0xc0000000,-28
addi r29,#32,r30 ; set up frame pointer
;END PROLOGUE
PCM_fillbuf_body:
LM70:
.stabn 68,0,184,LM70
LBB8:
LM71:
.stabn 68,0,185,LM71
jspci r24,#_wavbuf_switch,r31
nop ;via slot (len 0)
nop ;via slot (len 0)
LM72:
.stabn 68,0,186,LM72
ld _PCM_srcsize[r25],r2 ;movsi _PCM_srcsize -> r2
ble r2,r0,L45
nop ;via slot (len 1)
ld _wavelen[r25],r3 ;movsi _wavelen -> r3
ble r3,r0,L45
nop ;via slot (len 0)
nop ;via slot (len 0)
ld _PCM_xfersize[r25],r2 ;movsi _PCM_xfersize -> r2
lsl r2,r2,#2 ;ashlsi3 (r2<<2) -> r2
addi r2,#64,r2 ;addsi3 r2,64 -> r2
blt r2,r3,L45
nop ;via slot (len 1)
ld _au_repeat[r25],r2 ;movsi _au_repeat -> r2
LM73:
.stabn 68,0,187,LM73
beq r2,r0,L45
nop ;via slot (len 0)
nop ;via slot (len 0)
LM74:
.stabn 68,0,189,LM74
ld _PCM_rd_ptr[r25],r2 ;movsi _PCM_rd_ptr -> r2
ld _WAV_headlen[r25],r8 ;movsi _WAV_headlen -> r8
add r2,r8,r2 ;addsi3 r2,r8 -> r2
st _PCM_rd_ptr[r25],r2 ;movsi r2 -> _PCM_rd_ptr
LM75:
.stabn 68,0,190,LM75
ld _PCM_rd_ptr[r25],r2 ;movsi _PCM_rd_ptr -> r2
asr r2,r2,#2 ;ashrsi3 (r2>>2) -> r2
lsl r2,r2,#2 ;ashlsi3 (r2<<2) -> r2
st _PCM_rd_ptr[r25],r2 ;movsi r2 -> _PCM_rd_ptr
LM76:
.stabn 68,0,191,LM76
st _PCM_xfersize[r25],r0 ;movsi 0 -> _PCM_xfersize
LM77:
.stabn 68,0,192,LM77
addi r0,#4,r8 ;movsi smallint
st _PCM_ampf[r25],r8 ;movsi r8 -> _PCM_ampf
L45:
LM78:
.stabn 68,0,195,LM78
ld _PCM_srcsize[r25],r2 ;movsi _PCM_srcsize -> r2
ld _WAV_bufsize[r25],r3 ;movsi _WAV_bufsize -> r3
ble r2,r3,L47
nop ;via slot (len 0)
nop ;via slot (len 0)
LM79:
.stabn 68,0,196,LM79
jspci r24,#L48,r0
nop ;via slot (len 1) ;jump L48
add r0,r3,r6 ;movsi r3 -> r6
L47:
LM80:
.stabn 68,0,198,LM80
ld _PCM_srcsize[r25],r6 ;movsi _PCM_srcsize -> r6
L48:
LM81:
.stabn 68,0,200,LM81
ld _PCM_srcsize[r25],r2 ;movsi _PCM_srcsize -> r2
ble r2,r0,L49
nop ;via slot (len 1)
ld _wavelen[r25],r2 ;movsi _wavelen -> r2
ble r2,r0,L49
nop ;via slot (len 0)
nop ;via slot (len 0)
LM82:
.stabn 68,0,202,LM82
jspci r24,#L50,r0 ;jump L50
addi r0,#0,r5 ;movsi smallint
ld _PCM_sndwr[r25],r7 ;movsi _PCM_sndwr -> r7
L53:
LM83:
.stabn 68,0,203,LM83
ld _PCM_rd_ptr[r25],r3 ;movsi _PCM_rd_ptr -> r3
add r2,r3,r2 ;addsi3 r2,r3 -> r2
ld 0[r2],r2 ;movsi 0[r2] -> r2
st 0[r4],r2 ; movsi r2 -> 0[r4]
LM84:
.stabn 68,0,202,LM84
addi r5,#1,r5 ;addsi3 r5,1 -> r5
L50:
blt r5,r6,L53
lsl r5,r2,#2 ;ashlsi3 (r5<<2) -> r2
add r2,r7,r4 ;addsi3 r2,r7 -> r4
LM85:
.stabn 68,0,204,LM85
ld _WAV_bufsize[r25],r2 ;movsi _WAV_bufsize -> r2
lsl r2,r2,#2 ;ashlsi3 (r2<<2) -> r2
ld _PCM_sndwr[r25],r8 ;movsi _PCM_sndwr -> r8
add r2,r8,r2 ;addsi3 r2,r8 -> r2
st _PCM_sndwr[r25],r2 ;movsi r2 -> _PCM_sndwr
LM86:
.stabn 68,0,205,LM86
ld __PCM_sndbufend[r25],r3 ;movsi __PCM_sndbufend -> r3
blo r2,r3,L55
nop ;via slot (len 0)
nop ;via slot (len 0)
ld __PCM_sndbufstart[r25],r8 ;movsi __PCM_sndbufstart -> r8
st _PCM_sndwr[r25],r8 ;movsi r8 -> _PCM_sndwr
L55:
LM87:
.stabn 68,0,206,LM87
ld _PCM_srcsize[r25],r3 ;movsi _PCM_srcsize -> r3
ld _WAV_bufsize[r25],r2 ;movsi _WAV_bufsize -> r2
ble r3,r2,L56
nop ;via slot (len 1)
lsl r6,r2,#2 ;ashlsi3 (r6<<2) -> r2
ld _PCM_rd_ptr[r25],r3 ;movsi _PCM_rd_ptr -> r3
add r2,r3,r2 ;addsi3 r2,r3 -> r2
st _PCM_rd_ptr[r25],r2 ;movsi r2 -> _PCM_rd_ptr
L56:
LM88:
.stabn 68,0,207,LM88
ld _PCM_srcsize[r25],r2 ;movsi _PCM_srcsize -> r2
ld _WAV_bufsize[r25],r8 ;movsi _WAV_bufsize -> r8
sub r2,r8,r2 ;subsi3 r2,r8 -> r2
st _PCM_srcsize[r25],r2 ;movsi r2 -> _PCM_srcsize
LM89:
.stabn 68,0,208,LM89
ld _PCM_xfersize[r25],r2 ;movsi _PCM_xfersize -> r2
ld _WAV_bufsize[r25],r8 ;movsi _WAV_bufsize -> r8
add r2,r8,r2 ;addsi3 r2,r8 -> r2
st _PCM_xfersize[r25],r2 ;movsi r2 -> _PCM_xfersize
L49:
LM90:
.stabn 68,0,210,LM90
ld _PCM_sndrd[r25],r4 ;movsi _PCM_sndrd -> r4
jspci r24,#_WAV_fillbuf,r31 ;1 _WAV_fillbuf
ld _PCM_databuf[r25],r5 ;movsi _PCM_databuf -> r5
ld _WAV_bufsize[r25],r6 ;movsi _WAV_bufsize -> r6
LM91:
.stabn 68,0,211,LM91
ld _WAV_bufsize[r25],r2 ;movsi _WAV_bufsize -> r2
lsl r2,r2,#2 ;ashlsi3 (r2<<2) -> r2
ld _PCM_sndrd[r25],r8 ;movsi _PCM_sndrd -> r8
add r2,r8,r2 ;addsi3 r2,r8 -> r2
st _PCM_sndrd[r25],r2 ;movsi r2 -> _PCM_sndrd
LM92:
.stabn 68,0,212,LM92
ld __PCM_sndbufend[r25],r3 ;movsi __PCM_sndbufend -> r3
blo r2,r3,L57
nop ;via slot (len 1)
ld __PCM_sndbufstart[r25],r8 ;movsi __PCM_sndbufstart -> r8
st _PCM_sndrd[r25],r8 ;movsi r8 -> _PCM_sndrd
L57:
LM93:
.stabn 68,0,225,LM93
LBE8:
;EPILOGUE
addi r30,#-32,r29 ; sp not trusted here
ld 16[r29],r31
ld 20[r29],r30
jspci r31,#0,r0 ;return
addi r29,#32,r29
nop
;END EPILOGUE
.eop ;PCM_fillbuf
.stabs "PCM_fillbuf:F1",36,0,183,_PCM_fillbuf
.stabs "i:r1",64,0,184,5
.stabs "bsize:r1",64,0,184,6
.stabn 192,0,0,LBB8
.stabn 224,0,0,LBE8
.globl _not_enabled
.data
.stabs "not_enabled:G1",32,0,228,0
.align 2
_not_enabled:
.word 1
.text
.align 2
.globl _PCM_startplay
_PCM_startplay:
LM94:
.stabn 68,0,231,LM94
;#PROLOGUE
addi r29,#-32,r29 ; temp= 0, regs= 8, args= 0, sfo= -8
st 16[r29],r31
st 20[r29],r30
;.mask 0xc0000000,-28
addi r29,#32,r30 ; set up frame pointer
;END PROLOGUE
PCM_startplay_body:
LM95:
.stabn 68,0,232,LM95
ld _x00ffffff[r25],r3 ;movsi _x00ffffff -> r3
and r4,r3,r4 ;andsi3 r4,r3 -> r4
lsr r4,r4,#2 ;lshrsi3 (r4>>2) -> r4
st _PCM_srcsize[r25],r4 ;movsi r4 -> _PCM_srcsize
LM96:
.stabn 68,0,233,LM96
addi r0,#8,r3 ;movsi smallint
st _PCM_ampf[r25],r3 ;movsi r3 -> _PCM_ampf
LM97:
.stabn 68,0,234,LM97
st _PCM_xfersize[r25],r0 ;movsi 0 -> _PCM_xfersize
LM98:
.stabn 68,0,236,LM98
ld __PCM_sndbufstart[r25],r2 ;movsi __PCM_sndbufstart -> r2
LM99:
.stabn 68,0,238,LM99
jspci r24,#_PCM_fillbuf,r31
st _PCM_sndwr[r25],r2 ;movsi r2 -> _PCM_sndwr
st _PCM_sndrd[r25],r2 ;movsi r2 -> _PCM_sndrd
LM100:
.stabn 68,0,239,LM100
jspci r24,#_PCM_continue,r31
nop ;via slot (len 0)
nop ;via slot (len 0)
LM101:
.stabn 68,0,240,LM101
;EPILOGUE
addi r30,#-32,r29 ; sp not trusted here
ld 16[r29],r31
ld 20[r29],r30
jspci r31,#0,r0 ;return
addi r29,#32,r29
nop
;END EPILOGUE
.eop ;PCM_startplay
.stabs "PCM_startplay:F19",36,0,231,_PCM_startplay
.stabs "srcsize:P1",64,0,230,4
.align 2
.globl _PCM_continue
_PCM_continue:
LM102:
.stabn 68,0,243,LM102
;#PROLOGUE
addi r29,#-32,r29 ; temp= 0, regs= 8, args= 0, sfo= -8
st 16[r29],r31
st 20[r29],r30
;.mask 0xc0000000,-28
addi r29,#32,r30 ; set up frame pointer
;END PROLOGUE
PCM_continue_body:
LM103:
.stabn 68,0,245,LM103
st _WAV_data_ready[r25],r0 ;movsi 0 -> _WAV_data_ready
LM104:
.stabn 68,0,246,LM104
jspci r24,#_PCM_switchbuf,r31
nop ;via slot (len 0)
nop ;via slot (len 0) ;1 _PCM_switchbuf
LM105:
.stabn 68,0,247,LM105
addi r0,#65280,r5 ;movsi smallint
st 33840[r27],r5 ; movsi r5 -> 33840[r27]
ld _PCM_dmabuf[r25],r4 ;movsi _PCM_dmabuf -> r4
ld _x00ffffff[r25],r5 ;movsi _x00ffffff -> r5
and r4,r5,r2 ;andsi3 r4,r5 -> r2
lsr r2,r3,#2 ;lshrsi3 (r2>>2) -> r3
addi r0,#511,r4 ;movsi smallint
and r3,r4,r3 ;andsi3 r3,r4 -> r3
st 34096[r27],r3 ; movsi r3 -> 34096[r27]
lsr r2,r2,#11 ;lshrsi3 (r2>>11) -> r2
st 34352[r27],r2 ; movsi r2 -> 34352[r27]
LM106:
.stabn 68,0,248,LM106
ld _not_enabled[r25],r2 ;movsi _not_enabled -> r2
beq r2,r0,L64
nop ;via slot (len 0)
nop ;via slot (len 0)
L70:
ld 34752[r27],r2 ;C r2 34752 r27
addi r0,#4096,r5 ;movsi smallint
and r2,r5,r2 ;andsi3 r2,r5 -> r2
beq r2,r0,L70
nop ;via slot (len 0)
nop ;via slot (len 0)
st 16424[r27],r0 ; movsi 0 -> 16424[r27]
;#APP
nop
nop
;#NO_APP
ld _gbl_buscon_irqmasks[r25],r4 ;movsi _gbl_buscon_irqmasks -> r4
or r4,r5,r2 ;iorsi3 r4,r5 -> r2
st _gbl_buscon_irqmasks[r25],r2 ;movsi r2 -> _gbl_buscon_irqmasks
st 34764[r27],r2 ; movsi r2 -> 34764[r27]
st _not_enabled[r25],r0 ;movsi 0 -> _not_enabled
L64:
LM107:
.stabn 68,0,249,LM107
jspci r24,#_PCM_fillbuf,r31
nop ;via slot (len 0)
nop ;via slot (len 0)
LM108:
.stabn 68,0,250,LM108
addi r0,#1,r5 ;movsi smallint
st _WAV_data_ready[r25],r5 ;movsi r5 -> _WAV_data_ready
LM109:
.stabn 68,0,251,LM109
;EPILOGUE
addi r30,#-32,r29 ; sp not trusted here
ld 16[r29],r31
ld 20[r29],r30
jspci r31,#0,r0 ;return
addi r29,#32,r29
nop
;END EPILOGUE
.eop ;PCM_continue
.stabs "PCM_continue:F1",36,0,243,_PCM_continue
.align 2
.globl _PlayWAVE
_PlayWAVE:
LM110:
.stabn 68,0,256,LM110
;#PROLOGUE
addi r29,#-48,r29 ; temp= 4, regs= 16, args= 0, sfo= -8
st 16[r29],r31
st 20[r29],r30
st 24[r29],r16
;.mask 0xc0010000,-40
addi r29,#48,r30 ; set up frame pointer
;END PROLOGUE
PlayWAVE_body:
add r0,r4,r16 ;movsi r4 -> r16
LM111:
.stabn 68,0,257,LM111
LBB9:
LM112:
.stabn 68,0,261,LM112
addi r25,#__ADPCM_params_,r2 ;S movsi __ADPCM_params_(AExp) -> r2
LM113:
.stabn 68,0,262,LM113
st _SrcType[r25],r0 ;movsi 0 -> _SrcType
LM114:
.stabn 68,0,264,LM114
addi r29,#-8,r29 ;addsi3 r29,-8 -> r29
addi r30,#-12,r7 ;addsi3 r30,-12 -> r7
st 16[r29],r2 ; movsi r2 -> 16[r29]
jspci r24,#_wave_header,r31 ;1 _wave_header
addi r25,#_SrcType,r5 ;S movsi _SrcType(AExp) -> r5
addi r25,#_WAV_bufsize,r6 ;S movsi _WAV_bufsize(AExp) -> r6
LM115:
.stabn 68,0,268,LM115
jspci r24,#_WAV_initbuf,r31
nop ;via slot (len 0)
nop ;via slot (len 0) ;1 _WAV_initbuf
LM116:
.stabn 68,0,269,LM116
ld _PCM_rd_ptr[r25],r2 ;movsi _PCM_rd_ptr -> r2
ld _WAV_headlen[r25],r3 ;movsi _WAV_headlen -> r3
add r2,r3,r2 ;addsi3 r2,r3 -> r2
st _PCM_rd_ptr[r25],r2 ;movsi r2 -> _PCM_rd_ptr
LM117:
.stabn 68,0,270,LM117
ld _PCM_rd_ptr[r25],r2 ;movsi _PCM_rd_ptr -> r2
asr r2,r2,#2 ;ashrsi3 (r2>>2) -> r2
lsl r2,r2,#2 ;ashlsi3 (r2<<2) -> r2
st _PCM_rd_ptr[r25],r2 ;movsi r2 -> _PCM_rd_ptr
LM118:
.stabn 68,0,272,LM118
ld _WAV_headlen[r25],r2 ;movsi _WAV_headlen -> r2
ld -12[r30],r8 ;C r8 -12 r30
add r2,r8,r2 ;addsi3 r2,r8 -> r2
sub r2,r16,r2 ;subsi3 r2,r16 -> r2
ld _wavelen[r25],r3 ;movsi _wavelen -> r3
sub r3,r2,r4 ;subsi3 r3,r2 -> r4
st _wavelen[r25],r4 ;movsi r4 -> _wavelen
LM119:
.stabn 68,0,273,LM119
addi r0,#20480,r8 ;movsi smallint
ld _WAV_headlen[r25],r3 ;movsi _WAV_headlen -> r3
sub r8,r3,r2 ;subsi3 r8,r3 -> r2
blt r4,r2,L76
nop ;via slot (len 1)
addi r29,#8,r29 ;addsi3 r29,8 -> r29
LM120:
.stabn 68,0,276,LM120
addi r0,#20480,r8 ;movsi smallint
ld _WAV_headlen[r25],r3 ;movsi _WAV_headlen -> r3
sub r8,r3,r4 ;subsi3 r8,r3 -> r4
L76:
jspci r24,#_PCM_startplay,r31
nop ;via slot (len 0)
nop ;via slot (len 0) ;1 _PCM_startplay
LM121:
.stabn 68,0,278,LM121
ld _PCM_rd_ptr[r25],r2 ;movsi _PCM_rd_ptr -> r2
asr r2,r2,#2 ;ashrsi3 (r2>>2) -> r2
lsl r2,r2,#2 ;ashlsi3 (r2<<2) -> r2
st _PCM_rd_ptr[r25],r2 ;movsi r2 -> _PCM_rd_ptr
LM122:
.stabn 68,0,280,LM122
addi r0,#0,r2 ;movsi smallint
LM123:
.stabn 68,0,281,LM123
LBE9:
;EPILOGUE
addi r30,#-48,r29 ; sp not trusted here
ld 16[r29],r31
ld 20[r29],r30
ld 24[r29],r16
jspci r31,#0,r0 ;return
addi r29,#48,r29
nop
;END EPILOGUE
.eop ;PlayWAVE
.stabs "PlayWAVE:F1",36,0,256,_PlayWAVE
.stabs "pDataWAVE:P42",64,0,255,16
.stabs "SizeWAVE:P1",64,0,255,5
.stabs "start:1",128,0,258,-12
.stabs "ADPCM_params:r52=*33",64,0,260,2
.stabn 192,0,0,LBB9
.stabn 224,0,0,LBE9
.align 2
.globl _d2a_interrupt_service
_d2a_interrupt_service:
LM124:
.stabn 68,0,283,LM124
;#PROLOGUE
addi r29,#-32,r29 ; temp= 0, regs= 8, args= 0, sfo= -8
st 16[r29],r31
st 20[r29],r30
;.mask 0xc0000000,-28
addi r29,#32,r30 ; set up frame pointer
;END PROLOGUE
d2a_interrupt_service_body:
LM125:
.stabn 68,0,284,LM125
ld _WAV_data_ready[r25],r2 ;movsi _WAV_data_ready -> r2
beq r2,r0,L78
nop ;via slot (len 1)
addi r0,#65408,r5 ;movsi smallint
LM126:
.stabn 68,0,285,LM126
jspci r24,#_PCM_continue,r31
nop ;via slot (len 0)
nop ;via slot (len 0)
LM127:
.stabn 68,0,286,LM127
jspci r24,#L79,r0
nop ;via slot (len 0)
nop ;via slot (len 0) ;jump L79
L78:
LM128:
.stabn 68,0,288,LM128
st 33840[r27],r5 ; movsi r5 -> 33840[r27]
ld _PCM_start[r25],r2 ;movsi _PCM_start -> r2
addi r2,#2048,r2 ;addsi3 r2,2048 -> r2
addi r0,#511,r4 ;movsi smallint
and r2,r4,r3 ;andsi3 r2,r4 -> r3
st 34096[r27],r3 ; movsi r3 -> 34096[r27]
asr r2,r2,#9 ;ashrsi3 (r2>>9) -> r2
st 34352[r27],r2 ; movsi r2 -> 34352[r27]
LM129:
.stabn 68,0,289,LM129
ld _not_enabled[r25],r2 ;movsi _not_enabled -> r2
beq r2,r0,L79
nop ;via slot (len 0)
nop ;via slot (len 0)
L90:
ld 34752[r27],r2 ;C r2 34752 r27
addi r0,#4096,r5 ;movsi smallint
and r2,r5,r2 ;andsi3 r2,r5 -> r2
beq r2,r0,L90
nop ;via slot (len 0)
nop ;via slot (len 0)
st 16424[r27],r0 ; movsi 0 -> 16424[r27]
;#APP
nop
nop
;#NO_APP
ld _gbl_buscon_irqmasks[r25],r4 ;movsi _gbl_buscon_irqmasks -> r4
or r4,r5,r2 ;iorsi3 r4,r5 -> r2
st _gbl_buscon_irqmasks[r25],r2 ;movsi r2 -> _gbl_buscon_irqmasks
st 34764[r27],r2 ; movsi r2 -> 34764[r27]
st _not_enabled[r25],r0 ;movsi 0 -> _not_enabled
L79:
LM130:
.stabn 68,0,291,LM130
;EPILOGUE
addi r30,#-32,r29 ; sp not trusted here
ld 16[r29],r31
ld 20[r29],r30
jspci r31,#0,r0 ;return
addi r29,#32,r29
nop
;END EPILOGUE
.eop ;d2a_interrupt_service
.stabs "d2a_interrupt_service:F19",36,0,283,_d2a_interrupt_service
.stabs "reg0:r1",64,0,23,0
.stabs "mvd:r53=*1",64,0,11,27
.stabs "PCM_dmabuf:S49",40,0,20,_PCM_dmabuf
.vcomm _PCM_dmabuf,4
.stabs "PCM_databuf:S49",40,0,21,_PCM_databuf
.vcomm _PCM_databuf,4
.stabs "PCM_sndrd:S49",40,0,26,_PCM_sndrd
.vcomm _PCM_sndrd,4
.stabs "PCM_sndwr:S49",40,0,26,_PCM_sndwr
.vcomm _PCM_sndwr,4
.stabs "_PCM_sndbufstart:S49",40,0,26,__PCM_sndbufstart
.vcomm __PCM_sndbufstart,4
.stabs "_PCM_sndbufend:S49",40,0,26,__PCM_sndbufend
.vcomm __PCM_sndbufend,4
.stabs "SrcType:G1",32,0,30,0
.data
.comm _SrcType,4
.stabs "WAV_bufsize:S1",40,0,34,_WAV_bufsize
.vcomm _WAV_bufsize,4
.stabs "_ADPCM_params_:S54=ar1;0;1;33",40,0,253,__ADPCM_params_
.vcomm __ADPCM_params_,68
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -