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

📄 xr16.s

📁 This free cpu-ip! use verilog
💻 S
📖 第 1 页 / 共 3 页
字号:
t_bgt27:
	cmpi r2,0
	bgt  t_bgt28
	br   e_bgt
t_bgt28:
	cmpi r2,1
	bgt  e_bgt
t_bgt29:
	cmpi r2,32767
	bgt  e_bgt
t_bgt30:
	lea  r2,32767
	cmpi r2,-32768
	bgt  t_bgt31
	br   e_bgt
t_bgt31:
	cmpi r2,-32767
	bgt  t_bgt32
	br   e_bgt
t_bgt32:
	cmpi r2,-1
	bgt  t_bgt33
	br   e_bgt
t_bgt33:
	cmpi r2,0
	bgt  t_bgt34
	br   e_bgt
t_bgt34:
	cmpi r2,1
	bgt  t_bgt35
	br   e_bgt
t_bgt35:
	cmpi r2,32767
	bgt  e_bgt
t_bgt36:
	br t_bgt37
e_bgt:
	jal r2,error
t_bgt37:

t_bltu0:
	lea  r2,-32768
	cmpi r2,-32768
	bltu e_bltu
t_bltu1:
	cmpi r2,-32767
	bltu t_bltu2
	br   e_bltu
t_bltu2:
	cmpi r2,-1
	bltu t_bltu3
	br   e_bltu
t_bltu3:
	cmpi r2,0
	bltu e_bltu
t_bltu4:
	cmpi r2,1
	bltu e_bltu
t_bltu5:
	cmpi r2,32767
	bltu e_bltu
t_bltu6:
	lea  r2,-32767
	cmpi r2,-32768
	bltu e_bltu
t_bltu7:
	cmpi r2,-32767
	bltu e_bltu
t_bltu8:
	cmpi r2,-1
	bltu t_bltu9
	br   e_bltu
t_bltu9:
	cmpi r2,0
	bltu e_bltu
t_bltu10:
	cmpi r2,1
	bltu e_bltu
t_bltu11:
	cmpi r2,32767
	bltu e_bltu
t_bltu12:
	lea  r2,-1
	cmpi r2,-32768
	bltu e_bltu
t_bltu13:
	cmpi r2,-32767
	bltu e_bltu
t_bltu14:
	cmpi r2,-1
	bltu e_bltu
t_bltu15:
	cmpi r2,0
	bltu e_bltu
t_bltu16:
	cmpi r2,1
	bltu e_bltu
t_bltu17:
	cmpi r2,32767
	bltu e_bltu
t_bltu18:
	lea  r2,0
	cmpi r2,-32768
	bltu t_bltu19
	br   e_bltu
t_bltu19:
	cmpi r2,-32767
	bltu t_bltu20
	br   e_bltu
t_bltu20:
	cmpi r2,-1
	bltu t_bltu21
	br   e_bltu
t_bltu21:
	cmpi r2,0
	bltu e_bltu
t_bltu22:
	cmpi r2,1
	bltu t_bltu23
	br   e_bltu
t_bltu23:
	cmpi r2,32767
	bltu t_bltu24
	br   e_bltu
t_bltu24:
	lea  r2,1
	cmpi r2,-32768
	bltu t_bltu25
	br   e_bltu
t_bltu25:
	cmpi r2,-32767
	bltu t_bltu26
	br   e_bltu
t_bltu26:
	cmpi r2,-1
	bltu t_bltu27
	br   e_bltu
t_bltu27:
	cmpi r2,0
	bltu e_bltu
t_bltu28:
	cmpi r2,1
	bltu e_bltu
t_bltu29:
	cmpi r2,32767
	bltu t_bltu30
	br   e_bltu
t_bltu30:
	lea  r2,32767
	cmpi r2,-32768
	bltu t_bltu31
	br   e_bltu
t_bltu31:
	cmpi r2,-32767
	bltu t_bltu32
	br   e_bltu
t_bltu32:
	cmpi r2,-1
	bltu t_bltu33
	br   e_bltu
t_bltu33:
	cmpi r2,0
	bltu e_bltu
t_bltu34:
	cmpi r2,1
	bltu e_bltu
t_bltu35:
	cmpi r2,32767
	bltu e_bltu
t_bltu36:
	br t_bltu37
e_bltu:
	jal r2,error
t_bltu37:

t_bgeu0:
	lea  r2,-32768
	cmpi r2,-32768
	bgeu t_bgeu1
	br   e_bgeu
t_bgeu1:
	cmpi r2,-32767
	bgeu e_bgeu
t_bgeu2:
	cmpi r2,-1
	bgeu e_bgeu
t_bgeu3:
	cmpi r2,0
	bgeu t_bgeu4
	br   e_bgeu
t_bgeu4:
	cmpi r2,1
	bgeu t_bgeu5
	br   e_bgeu
t_bgeu5:
	cmpi r2,32767
	bgeu t_bgeu6
	br   e_bgeu
t_bgeu6:
	lea  r2,-32767
	cmpi r2,-32768
	bgeu t_bgeu7
	br   e_bgeu
t_bgeu7:
	cmpi r2,-32767
	bgeu t_bgeu8
	br   e_bgeu
t_bgeu8:
	cmpi r2,-1
	bgeu e_bgeu
t_bgeu9:
	cmpi r2,0
	bgeu t_bgeu10
	br   e_bgeu
t_bgeu10:
	cmpi r2,1
	bgeu t_bgeu11
	br   e_bgeu
t_bgeu11:
	cmpi r2,32767
	bgeu t_bgeu12
	br   e_bgeu
t_bgeu12:
	lea  r2,-1
	cmpi r2,-32768
	bgeu t_bgeu13
	br   e_bgeu
t_bgeu13:
	cmpi r2,-32767
	bgeu t_bgeu14
	br   e_bgeu
t_bgeu14:
	cmpi r2,-1
	bgeu t_bgeu15
	br   e_bgeu
t_bgeu15:
	cmpi r2,0
	bgeu t_bgeu16
	br   e_bgeu
t_bgeu16:
	cmpi r2,1
	bgeu t_bgeu17
	br   e_bgeu
t_bgeu17:
	cmpi r2,32767
	bgeu t_bgeu18
	br   e_bgeu
t_bgeu18:
	lea  r2,0
	cmpi r2,-32768
	bgeu e_bgeu
t_bgeu19:
	cmpi r2,-32767
	bgeu e_bgeu
t_bgeu20:
	cmpi r2,-1
	bgeu e_bgeu
t_bgeu21:
	cmpi r2,0
	bgeu t_bgeu22
	br   e_bgeu
t_bgeu22:
	cmpi r2,1
	bgeu e_bgeu
t_bgeu23:
	cmpi r2,32767
	bgeu e_bgeu
t_bgeu24:
	lea  r2,1
	cmpi r2,-32768
	bgeu e_bgeu
t_bgeu25:
	cmpi r2,-32767
	bgeu e_bgeu
t_bgeu26:
	cmpi r2,-1
	bgeu e_bgeu
t_bgeu27:
	cmpi r2,0
	bgeu t_bgeu28
	br   e_bgeu
t_bgeu28:
	cmpi r2,1
	bgeu t_bgeu29
	br   e_bgeu
t_bgeu29:
	cmpi r2,32767
	bgeu e_bgeu
t_bgeu30:
	lea  r2,32767
	cmpi r2,-32768
	bgeu e_bgeu
t_bgeu31:
	cmpi r2,-32767
	bgeu e_bgeu
t_bgeu32:
	cmpi r2,-1
	bgeu e_bgeu
t_bgeu33:
	cmpi r2,0
	bgeu t_bgeu34
	br   e_bgeu
t_bgeu34:
	cmpi r2,1
	bgeu t_bgeu35
	br   e_bgeu
t_bgeu35:
	cmpi r2,32767
	bgeu t_bgeu36
	br   e_bgeu
t_bgeu36:
	br t_bgeu37
e_bgeu:
	jal r2,error
t_bgeu37:

t_bleu0:
	lea  r2,-32768
	cmpi r2,-32768
	bleu t_bleu1
	br   e_bleu
t_bleu1:
	cmpi r2,-32767
	bleu t_bleu2
	br   e_bleu
t_bleu2:
	cmpi r2,-1
	bleu t_bleu3
	br   e_bleu
t_bleu3:
	cmpi r2,0
	bleu e_bleu
t_bleu4:
	cmpi r2,1
	bleu e_bleu
t_bleu5:
	cmpi r2,32767
	bleu e_bleu
t_bleu6:
	lea  r2,-32767
	cmpi r2,-32768
	bleu e_bleu
t_bleu7:
	cmpi r2,-32767
	bleu t_bleu8
	br   e_bleu
t_bleu8:
	cmpi r2,-1
	bleu t_bleu9
	br   e_bleu
t_bleu9:
	cmpi r2,0
	bleu e_bleu
t_bleu10:
	cmpi r2,1
	bleu e_bleu
t_bleu11:
	cmpi r2,32767
	bleu e_bleu
t_bleu12:
	lea  r2,-1
	cmpi r2,-32768
	bleu e_bleu
t_bleu13:
	cmpi r2,-32767
	bleu e_bleu
t_bleu14:
	cmpi r2,-1
	bleu t_bleu15
	br   e_bleu
t_bleu15:
	cmpi r2,0
	bleu e_bleu
t_bleu16:
	cmpi r2,1
	bleu e_bleu
t_bleu17:
	cmpi r2,32767
	bleu e_bleu
t_bleu18:
	lea  r2,0
	cmpi r2,-32768
	bleu t_bleu19
	br   e_bleu
t_bleu19:
	cmpi r2,-32767
	bleu t_bleu20
	br   e_bleu
t_bleu20:
	cmpi r2,-1
	bleu t_bleu21
	br   e_bleu
t_bleu21:
	cmpi r2,0
	bleu t_bleu22
	br   e_bleu
t_bleu22:
	cmpi r2,1
	bleu t_bleu23
	br   e_bleu
t_bleu23:
	cmpi r2,32767
	bleu t_bleu24
	br   e_bleu
t_bleu24:
	lea  r2,1
	cmpi r2,-32768
	bleu t_bleu25
	br   e_bleu
t_bleu25:
	cmpi r2,-32767
	bleu t_bleu26
	br   e_bleu
t_bleu26:
	cmpi r2,-1
	bleu t_bleu27
	br   e_bleu
t_bleu27:
	cmpi r2,0
	bleu e_bleu
t_bleu28:
	cmpi r2,1
	bleu t_bleu29
	br   e_bleu
t_bleu29:
	cmpi r2,32767
	bleu t_bleu30
	br   e_bleu
t_bleu30:
	lea  r2,32767
	cmpi r2,-32768
	bleu t_bleu31
	br   e_bleu
t_bleu31:
	cmpi r2,-32767
	bleu t_bleu32
	br   e_bleu
t_bleu32:
	cmpi r2,-1
	bleu t_bleu33
	br   e_bleu
t_bleu33:
	cmpi r2,0
	bleu e_bleu
t_bleu34:
	cmpi r2,1
	bleu e_bleu
t_bleu35:
	cmpi r2,32767
	bleu t_bleu36
	br   e_bleu
t_bleu36:
	br t_bleu37
e_bleu:
	jal r2,error
t_bleu37:

t_bgtu0:
	lea  r2,-32768
	cmpi r2,-32768
	bgtu e_bgtu
t_bgtu1:
	cmpi r2,-32767
	bgtu e_bgtu
t_bgtu2:
	cmpi r2,-1
	bgtu e_bgtu
t_bgtu3:
	cmpi r2,0
	bgtu t_bgtu4
	br   e_bgtu
t_bgtu4:
	cmpi r2,1
	bgtu t_bgtu5
	br   e_bgtu
t_bgtu5:
	cmpi r2,32767
	bgtu t_bgtu6
	br   e_bgtu
t_bgtu6:
	lea  r2,-32767
	cmpi r2,-32768
	bgtu t_bgtu7
	br   e_bgtu
t_bgtu7:
	cmpi r2,-32767
	bgtu e_bgtu
t_bgtu8:
	cmpi r2,-1
	bgtu e_bgtu
t_bgtu9:
	cmpi r2,0
	bgtu t_bgtu10
	br   e_bgtu
t_bgtu10:
	cmpi r2,1
	bgtu t_bgtu11
	br   e_bgtu
t_bgtu11:
	cmpi r2,32767
	bgtu t_bgtu12
	br   e_bgtu
t_bgtu12:
	lea  r2,-1
	cmpi r2,-32768
	bgtu t_bgtu13
	br   e_bgtu
t_bgtu13:
	cmpi r2,-32767
	bgtu t_bgtu14
	br   e_bgtu
t_bgtu14:
	cmpi r2,-1
	bgtu e_bgtu
t_bgtu15:
	cmpi r2,0
	bgtu t_bgtu16
	br   e_bgtu
t_bgtu16:
	cmpi r2,1
	bgtu t_bgtu17
	br   e_bgtu
t_bgtu17:
	cmpi r2,32767
	bgtu t_bgtu18
	br   e_bgtu
t_bgtu18:
	lea  r2,0
	cmpi r2,-32768
	bgtu e_bgtu
t_bgtu19:
	cmpi r2,-32767
	bgtu e_bgtu
t_bgtu20:
	cmpi r2,-1
	bgtu e_bgtu
t_bgtu21:
	cmpi r2,0
	bgtu e_bgtu
t_bgtu22:
	cmpi r2,1
	bgtu e_bgtu
t_bgtu23:
	cmpi r2,32767
	bgtu e_bgtu
t_bgtu24:
	lea  r2,1
	cmpi r2,-32768
	bgtu e_bgtu
t_bgtu25:
	cmpi r2,-32767
	bgtu e_bgtu
t_bgtu26:
	cmpi r2,-1
	bgtu e_bgtu
t_bgtu27:
	cmpi r2,0
	bgtu t_bgtu28
	br   e_bgtu
t_bgtu28:
	cmpi r2,1
	bgtu e_bgtu
t_bgtu29:
	cmpi r2,32767
	bgtu e_bgtu
t_bgtu30:
	lea  r2,32767
	cmpi r2,-32768
	bgtu e_bgtu
t_bgtu31:
	cmpi r2,-32767
	bgtu e_bgtu
t_bgtu32:
	cmpi r2,-1
	bgtu e_bgtu
t_bgtu33:
	cmpi r2,0
	bgtu t_bgtu34
	br   e_bgtu
t_bgtu34:
	cmpi r2,1
	bgtu t_bgtu35
	br   e_bgtu
t_bgtu35:
	cmpi r2,32767
	bgtu e_bgtu
t_bgtu36:
	br t_bgtu37
e_bgtu:
	jal r2,error
t_bgtu37:

; call
t_call:
	lea r15,0
	call t_call1
	br e_call
align 16
t_call1:
	lea r1,t_call+4
	cmp r1,r15
	bne e_call
t_call2:
	call t_call3
	br e_call
align 16
t_call3:
	lea r1,t_call2+2
	cmp r1,r15
	bne e_call
t_call4:
	call t_call5
	br e_call
align 16
t_call5:
	lea r1,t_call4+2
	cmp r1,r15
	bne e_call
t_call6:
	call t_call7
	br e_call
align 16
t_call7:
	lea r1,t_call6+2
	cmp r1,r15
	bne e_call
	br t_imm
e_call:
	jal r2,error

; imm
t_imm:
	lw r1,k1
	lw r2,kAAAA
	lw r3,kFFFF
	lea r4,1
	cmp r1,r4
	bne e_imm
	lea r4,0xAAAA
	cmp r2,r4
	bne e_imm
	lea r4,0xFFFF
	cmp r3,r4
	bne e_imm
	br t_bp
e_imm:
	jal r2,error
k1:
	word 1
kAAAA:
	word 0xAAAA
kFFFF:
	word 0xFFFF

; branch pipeline annul
t_bp:
	lea r1,1
	lea r2,2
	cmp r0,r0
	beq t_bp1
	lea r1,3 ;a
	lea r2,4 ;a
t_bp1:
	cmpi r1,1
	bne e_bp
	cmpi r2,2
	bne e_bp
	cmp r0,r0
	beq t_bp2
	br  e_bp ;a
	br  e_bp ;a
t_bp2:
	cmp r0,r0
	beq t_bp3
	word 0xD001 ; imm 0x0010 ;a
	word 0xD001 ; imm 0x0010 ;a
t_bp3:
	addi r1,r1,0
	cmpi r1,1
	bne e_bp
	sw r1,w
	cmp r0,r0
	beq t_bp4
	word 0x8206 ; sw r2,w ; sw r2,6(r0) ; a
	word 0x8206 ; sw r2,w ; sw r2,6(r0) ; a
t_bp4:
	cmp r0,r0
	beq t_bp5
	word 0x9206 ; sb r2,w ; sb r2,6(r0) ; a
	word 0x9206 ; sb r2,w ; sb r2,6(r0) ; a
t_bp5:
	lw r3,w
	cmp r1,r3
	bne e_bp
	cmp r0,r0
	beq t_bp5
	word 0xA201 ; jal r2,error ; jal r15,10(r0) ;a
	word 0xA201 ; jal r2,error ; jal r15,10(r0) ;a
t_bp5:
	cmpi r1,1
	bne e_bp
	lea r15,3
	cmp r0,r0
	beq t_bp6
	call e_bp ;a
	call e_bp ;a
t_bp6:
	cmpi r15,3
	bne e_bp
	br t_jp
align 16
e_bp:
	jal r2,error

; jump pipeline annul
t_jp:
	lea r1,1
	lea r2,2
	j t_jp1
	lea r1,3 ;a
	lea r2,4 ;a
t_jp1:
	cmpi r1,1
	bne e_jp
	cmpi r2,2
	bne e_jp
	j t_jp2
	br e_jp ;a
	br e_jp ;a
t_jp2:
	j t_jp3
	word 0xD001 ; imm 0x0010 ;a
	word 0xD001 ; imm 0x0010 ;a
t_jp3:
	addi r1,r1,0
	cmpi r1,1
	bne e_jp
	sw r1,w
	j t_jp4
	word 0x8206 ; sw r2,w ; sw r2,6(r0) ; a
	word 0x8206 ; sw r2,w ; sw r2,6(r0) ; a
t_jp4:
	j t_jp5
	word 0x9206 ; sb r2,w ; sb r2,6(r0) ; a
	word 0x9206 ; sb r2,w ; sb r2,6(r0) ; a
t_jp5:
	lw r3,w
	cmp r1,r3
	bne e_jp
	j t_jp5
	word 0xA201 ; jal r2,error ; jal r15,10(r0) ;a
	word 0xA201 ; jal r2,error ; jal r15,10(r0) ;a
t_jp5:
	cmpi r1,1
	bne e_jp
	lea r15,3
	j t_jp6
	call e_jp ;a
	call e_jp ;a
t_jp6:
	cmpi r15,3
	bne e_jp
	br t_cp
align 16
e_jp:
	jal r2,error

; call pipeline annul
t_cp:
	lea r1,1
	lea r2,2
	call t_cp1
	lea r1,3 ;a
	lea r2,4 ;a
align 16
t_cp1:
	cmpi r1,1
	bne e_cp
	cmpi r2,2
	bne e_cp
	call t_cp2
	br e_cp ;a
	br e_cp ;a
align 16
t_cp2:
	call t_cp3
	word 0xD001 ; imm 0x0010 ;a
	word 0xD001 ; imm 0x0010 ;a
align 16
t_cp3:
	addi r1,r1,0
	cmpi r1,1
	bne e_cp
	sw r1,w
	call t_cp4
	word 0x8206 ; sw r2,w ; sw r2,6(r0) ; a
	word 0x8206 ; sw r2,w ; sw r2,6(r0) ; a
align 16
t_cp4:
	call t_cp5
	word 0x9206 ; sb r2,w ; sb r2,6(r0) ; a
	word 0x9206 ; sb r2,w ; sb r2,6(r0) ; a
align 16
t_cp5:
	lw r3,w
	cmp r1,r3
	bne e_cp
	call t_cp5
	word 0xA201 ; jal r2,error ; jal r15,10(r0) ;a
	word 0xA201 ; jal r2,error ; jal r15,10(r0) ;a
align 16
t_cp5:
	cmpi r1,1
	bne e_cp
	call t_cp6
	call e_cp ;a
	call e_cp ;a
align 16
t_cp6:
	lea r3,t_cp5+6
	cmp r3,r15
	bne e_cp
	br t_fwd
align 16
e_cp:
	jal r2,error

; test result forwarding
t_fwd:
	lea  r2,1
	lea  r3,2
	lea  r4,4
	lea  r5,7
	add  r6,r5,r4 ; 11
	add  r6,r6,r0 ; 11
	add  r6,r6,r2 ; 12
	sub  r6,r6,r5 ; 5
	andi r6,7 ; 5
	ori  r6,3 ; 7
	xori r6,4 ; 3
	andni r6,0  ; 3
	xori r6,-1 ; -4
    or   r6,r2 ; -3
	xori r6,-1 ; 2
    cmpi r6,2
	bne  e_fwd
	sw   r5,w
	lw   r2,w
	cmpi r2,7
	bne  e_fwd
    lb   r2,w
	cmp  r2,r0
	bne  e_fwd
; r0 results should not be forwarded
	addi r0,r0,1
	add  r2,r0,r0
	cmp  r2,r0
	bne  e_fwd
	addi r0,r0,1
	addi r2,r0,0
	cmp  r2,r0
	bne  e_fwd
	lea  r2,1
	addi r0,r2,0
	cmp  r0,r0
	bne  e_fwd
	j    ok
e_fwd:
	jal r2,error

⌨️ 快捷键说明

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