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

📄 ldc.s

📁 gdb-6.8 Linux下的调试程序 最新版本
💻 S
字号:
# Hitachi H8 testcase 'ldc'# mach(): all# as(h8300):	--defsym sim_cpu=0# as(h8300h):	--defsym sim_cpu=1# as(h8300s):	--defsym sim_cpu=2# as(h8sx):	--defsym sim_cpu=3# ld(h8300h):	-m h8300helf# ld(h8300s):	-m h8300self# ld(h8sx):	-m h8300sxelf	.include "testutils.inc"	.databyte_pre:	.byte	0byte_src:	.byte	0xffbyte_post:	.byte	0		startldc_imm8_ccr:	set_grs_a5a5	set_ccr_zero	ldc	#0xff, ccr	; set all ccr flags high, immediate operand	bcs	.L1		; carry flag set?	fail.L1:	bvs	.L2		; overflow flag set?	fail.L2:	beq	.L3		; zero flag set?	fail.L3:	bmi	.L4		; neg flag set?	fail.L4:	ldc	#0, ccr		; set all ccr flags low, immediate operand	bcc	.L5		; carry flag clear?	fail.L5:	bvc	.L6		; overflow flag clear?	fail.L6:	bne	.L7		; zero flag clear?	fail.L7:	bpl	.L8		; neg flag clear?	fail.L8:	test_cc_clear	test_grs_a5a5	ldc_reg8_ccr:	set_grs_a5a5	set_ccr_zero	mov	#0xff, r0h	ldc	r0h, ccr	; set all ccr flags high, reg operand	bcs	.L11		; carry flag set?	fail.L11:	bvs	.L12		; overflow flag set?	fail.L12:	beq	.L13		; zero flag set?	fail.L13:	bmi	.L14		; neg flag set?	fail.L14:	mov	#0, r0h	ldc	r0h, ccr	; set all ccr flags low, reg operand	bcc	.L15		; carry flag clear?	fail.L15:	bvc	.L16		; overflow flag clear?	fail.L16:	bne	.L17		; zero flag clear?	fail.L17:	bpl	.L18		; neg flag clear?	fail.L18:	test_cc_clear	test_h_gr16  0x00a5 r0	; Register 0 modified by test procedure.	test_gr_a5a5 1		; Make sure other general regs not disturbed	test_gr_a5a5 2	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7.if (sim_cpu == h8300s || sim_cpu == h8sx)	; Earlier versions, no exrldc_imm8_exr:	set_grs_a5a5	set_ccr_zero	ldc	#0, exr	ldc	#0x87, exr	; set exr to 0x87	stc	exr, r0l	; retrieve and check exr value	cmp.b	#0x87, r0l	beq	.L19	fail.L19:	test_h_gr16  0xa587 r0	; Register 0 modified by test procedure.	test_gr_a5a5 1		; Make sure other general regs not disturbed	test_gr_a5a5 2	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7	ldc_reg8_exr:		set_grs_a5a5	set_ccr_zero	ldc	#0, exr	mov	#0x87, r0h	ldc	r0h, exr	; set exr to 0x87	stc	exr, r0l	; retrieve and check exr value	cmp.b	#0x87, r0l	beq	.L21	fail.L21:	test_h_gr16  0x8787 r0	; Register 0 modified by test procedure.	test_gr_a5a5 1		; Make sure other general regs not disturbed	test_gr_a5a5 2	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7ldc_abs16_ccr:	set_grs_a5a5	set_ccr_zero	ldc	@byte_src:16, ccr	; abs16 src	stc	ccr, r0l	; copy into general reg	test_h_gr32 0xa5a5a5ff er0	; ff in r0l, a5 elsewhere.	test_gr_a5a5 1		; Make sure other general regs not disturbed	test_gr_a5a5 2	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7ldc_abs16_exr:	set_grs_a5a5	set_ccr_zero	ldc	#0, exr	ldc	@byte_src:16, exr	; abs16 src	stc	exr, r0l	; copy into general reg	test_h_gr32 0xa5a5a587 er0	; 87 in r0l, a5 elsewhere.	test_gr_a5a5 1		; Make sure other general regs not disturbed	test_gr_a5a5 2	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7ldc_abs32_ccr:	set_grs_a5a5	set_ccr_zero	ldc	@byte_src:32, ccr	; abs32 src	stc	ccr, r0l	; copy into general reg	test_h_gr32 0xa5a5a5ff er0	; ff in r0l, a5 elsewhere.	test_gr_a5a5 1		; Make sure other general regs not disturbed	test_gr_a5a5 2	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7ldc_abs32_exr:	set_grs_a5a5	set_ccr_zero	ldc	#0, exr	ldc	@byte_src:32, exr	; abs32 src	stc	exr, r0l	; copy into general reg	test_h_gr32 0xa5a5a587 er0	; 87 in r0l, a5 elsewhere.	test_gr_a5a5 1		; Make sure other general regs not disturbed	test_gr_a5a5 2	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7ldc_disp16_ccr:	set_grs_a5a5	set_ccr_zero	mov	#byte_pre, er1	ldc	@(1:16, er1), ccr	; disp16 src	stc	ccr, r0l	; copy into general reg	test_h_gr32 0xa5a5a5ff er0	; ff in r0l, a5 elsewhere.	test_h_gr32 byte_pre, er1	; er1 still contains address	test_gr_a5a5 2		; Make sure other general regs not disturbed	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7ldc_disp16_exr:	set_grs_a5a5	set_ccr_zero	ldc	#0, exr	mov	#byte_post, er1	ldc	@(-1:16, er1), exr	; disp16 src	stc	exr, r0l	; copy into general reg	test_h_gr32 0xa5a5a587 er0	; 87 in r0l, a5 elsewhere.	test_h_gr32 byte_post, er1	; er1 still contains address	test_gr_a5a5 2		; Make sure other general regs not disturbed	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7ldc_disp32_ccr:	set_grs_a5a5	set_ccr_zero	mov	#byte_pre, er1	ldc	@(1:32, er1), ccr	; disp32 src	stc	ccr, r0l	; copy into general reg	test_h_gr32 0xa5a5a5ff er0	; ff in r0l, a5 elsewhere.	test_h_gr32 byte_pre, er1	; er1 still contains address	test_gr_a5a5 2		; Make sure other general regs not disturbed	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7ldc_disp32_exr:	set_grs_a5a5	set_ccr_zero	ldc	#0, exr	mov	#byte_post, er1	ldc	@(-1:32, er1), exr	; disp16 src	stc	exr, r0l	; copy into general reg	test_h_gr32 0xa5a5a587 er0	; 87 in r0l, a5 elsewhere.	test_h_gr32 byte_post, er1	; er1 still contains address	test_gr_a5a5 2		; Make sure other general regs not disturbed	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7ldc_postinc_ccr:	set_grs_a5a5	set_ccr_zero	mov	#byte_src, er1	ldc	@er1+, ccr	; postinc src	stc	ccr, r0l	; copy into general reg	test_h_gr32  0xa5a5a5ff er0	; ff in r0l, a5 elsewhere.	test_h_gr32  byte_src+2, er1	; er1 still contains address	test_gr_a5a5 2		; Make sure other general regs not disturbed	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7	ldc_postinc_exr:	set_grs_a5a5	set_ccr_zero	ldc	#0, exr	mov	#byte_src, er1	ldc	@er1+, exr	; postinc src	stc	exr, r0l	; copy into general reg	test_h_gr32  0xa5a5a587 er0	; 87 in r0l, a5 elsewhere.	test_h_gr32  byte_src+2, er1	; er1 still contains address	test_gr_a5a5 2		; Make sure other general regs not disturbed	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7	ldc_ind_ccr:	set_grs_a5a5	set_ccr_zero	mov	#byte_src, er1	ldc	@er1, ccr	; postinc src	stc	ccr, r0l	; copy into general reg	test_h_gr32 0xa5a5a5ff er0	; ff in r0l, a5 elsewhere.	test_h_gr32 byte_src, er1	; er1 still contains address	test_gr_a5a5 2		; Make sure other general regs not disturbed	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7	ldc_ind_exr:	set_grs_a5a5	set_ccr_zero	ldc	#0, exr	mov	#byte_src, er1	ldc	@er1, exr	; postinc src	stc	exr, r0l	; copy into general reg	test_h_gr32 0xa5a5a587 er0	; 87 in r0l, a5 elsewhere.	test_h_gr32 byte_src, er1	; er1 still contains address	test_gr_a5a5 2		; Make sure other general regs not disturbed	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7	.endif	.if (sim_cpu == h8sx)		; New vbr and sbr registers for h8sxldc_reg_sbr:		set_grs_a5a5	set_ccr_zero	mov	#0xaaaaaaaa, er0	ldc	er0, sbr	; set sbr to 0xaaaaaaaa 	stc	sbr, er1	; retreive and check sbr value	test_h_gr32 0xaaaaaaaa er1	test_h_gr32 0xaaaaaaaa er0 ; Register 0 modified by test procedure.	test_gr_a5a5 2		; Make sure other general regs not disturbed	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7ldc_reg_vbr:		set_grs_a5a5	set_ccr_zero	mov	#0xaaaaaaaa, er0	ldc	er0, vbr	; set sbr to 0xaaaaaaaa	stc	vbr, er1	; retreive and check sbr value	test_h_gr32 0xaaaaaaaa er1	test_h_gr32 0xaaaaaaaa er0 ; Register 0 modified by test procedure.	test_gr_a5a5 2		; Make sure other general regs not disturbed	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7.endif	pass	exit 0

⌨️ 快捷键说明

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