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

📄 bset.s

📁 gdb-6.8 Linux下的调试程序 最新版本
💻 S
字号:
# Hitachi H8 testcase 'bset', 'bclr'# 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"	# Instructions tested:	#	# bset xx:3, rd8	;                   7 0 ?xxx rd8	# bclr xx:3, rd8	;                   7 2 ?xxx rd8	# bset xx:3, @erd	; 7 d 0rd ????      7 0 ?xxx ????	# bclr xx:3, @erd	; 7 d 0rd ????      7 2 ?xxx ????	# bset xx:3, @abs16	; 6 a 1 1??? aa:16  7 0 ?xxx ????	# bclr xx:3, @abs16	; 6 a 1 1??? aa:16  7 2 ?xxx ???? 	# bset reg8, rd8	;                   6 0 rs8  rd8	# bclr reg8, rd8	;                   6 2 rs8  rd8	# bset reg8, @erd	; 7 d 0rd ????      6 0 rs8  ????	# bclr reg8, @erd	; 7 d 0rd ????      6 2 rs8  ????	# bset reg8, @abs32	; 6 a 3 1??? aa:32  6 0 rs8  ????	# bclr reg8, @abs32	; 6 a 3 1??? aa:32  6 2 rs8  ???? 	#	# bset/eq xx:3, rd8	# bclr/eq xx:3, rd8	# bset/ne xx:3, rd8	# bclr/ne xx:3, rd8	.databyte_dst:	.byte 0	startbset_imm3_reg8:	set_grs_a5a5		; Fill all general regs with a fixed pattern	;;  bset xx:3, rd8	mov	#0, r1l	set_ccr_zero	bset	#0, r1l	test_cc_clear	test_h_gr8 1 r1l	set_ccr_zero	bset	#1, r1l	test_cc_clear	test_h_gr8 3 r1l	set_ccr_zero	bset	#2, r1l	test_cc_clear	test_h_gr8 7 r1l	set_ccr_zero	bset	#3, r1l	test_cc_clear	test_h_gr8 15 r1l	set_ccr_zero	bset	#4, r1l	test_cc_clear	test_h_gr8 31 r1l	set_ccr_zero	bset	#5, r1l	test_cc_clear	test_h_gr8 63 r1l	set_ccr_zero	bset	#6, r1l	test_cc_clear	test_h_gr8 127 r1l	set_ccr_zero	bset	#7, r1l	test_cc_clear	test_h_gr8 255 r1l.if (sim_cpu == h8300)	test_h_gr16 0xa5ff, r1.else	test_h_gr32  0xa5a5a5ff er1.endifbclr_imm3_reg8:		set_ccr_zero	bclr	#7, r1l	test_cc_clear	test_h_gr8 127 r1l	set_ccr_zero	bclr	#6, r1l	test_cc_clear	test_h_gr8 63 r1l	set_ccr_zero	bclr	#5, r1l	test_cc_clear	test_h_gr8 31 r1l	set_ccr_zero	bclr	#4, r1l	test_cc_clear	test_h_gr8 15 r1l	set_ccr_zero	bclr	#3, r1l	test_cc_clear	test_h_gr8 7 r1l	set_ccr_zero	bclr	#2, r1l	test_cc_clear	test_h_gr8 3 r1l	set_ccr_zero	bclr	#1, r1l	test_cc_clear	test_h_gr8 1 r1l	set_ccr_zero	bclr	#0, r1l	test_cc_clear	test_h_gr8 0 r1l	test_gr_a5a5 0		; Make sure other general regs not disturbed.if (sim_cpu == h8300)	test_h_gr16 0xa500 r1.else	test_h_gr32  0xa5a5a500 er1.endif	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)bset_imm3_ind:	set_grs_a5a5		; Fill all general regs with a fixed pattern	;;  bset xx:3, @erd	mov	#byte_dst, er1	set_ccr_zero	bset	#0, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 1 r2l	set_ccr_zero	bset	#1, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 3 r2l	set_ccr_zero	bset	#2, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 7 r2l	set_ccr_zero	bset	#3, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 15 r2l	set_ccr_zero	bset	#4, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 31 r2l	set_ccr_zero	bset	#5, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 63 r2l	set_ccr_zero	bset	#6, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 127 r2l	set_ccr_zero	bset	#7, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 255 r2l.if (sim_cpu == h8300)	test_h_gr16  0xa5ff r2.else	test_h_gr32  0xa5a5a5ff er2.endifbclr_imm3_ind:		set_ccr_zero	bclr	#7, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 127 r2l	set_ccr_zero	bclr	#6, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 63 r2l	set_ccr_zero	bclr	#5, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 31 r2l	set_ccr_zero	bclr	#4, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 15 r2l	set_ccr_zero	bclr	#3, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 7  r2l	set_ccr_zero	bclr	#2, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 3  r2l	set_ccr_zero	bclr	#1, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 1  r2l	set_ccr_zero	bclr	#0, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 0  r2l	test_gr_a5a5 0		; Make sure other general regs not disturbed.if (sim_cpu == h8300)	test_h_gr16  byte_dst r1	test_h_gr16  0xa500   r2.else	test_h_gr32  byte_dst   er1	test_h_gr32  0xa5a5a500 er2.endif	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7.if (sim_cpu > h8300h)bset_imm3_abs16:	set_grs_a5a5		; Fill all general regs with a fixed pattern	;;  bset xx:3, @aa:16	set_ccr_zero	bset	#0, @byte_dst:16	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 1 r2l	set_ccr_zero	bset	#1, @byte_dst:16	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 3 r2l	set_ccr_zero	bset	#2, @byte_dst:16	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 7 r2l	set_ccr_zero	bset	#3, @byte_dst:16	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 15 r2l	set_ccr_zero	bset	#4, @byte_dst:16	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 31 r2l	set_ccr_zero	bset	#5, @byte_dst:16	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 63 r2l	set_ccr_zero	bset	#6, @byte_dst:16	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 127 r2l	set_ccr_zero	bset	#7, @byte_dst:16	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 255 r2l.if (sim_cpu == h8300)	test_h_gr16  0xa5ff r2.else	test_h_gr32  0xa5a5a5ff er2.endifbclr_imm3_abs16:		set_ccr_zero	bclr	#7, @byte_dst:16	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 127 r2l	set_ccr_zero	bclr	#6, @byte_dst:16	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 63 r2l	set_ccr_zero	bclr	#5, @byte_dst:16	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 31 r2l	set_ccr_zero	bclr	#4, @byte_dst:16	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 15 r2l	set_ccr_zero	bclr	#3, @byte_dst:16	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 7  r2l	set_ccr_zero	bclr	#2, @byte_dst:16	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 3  r2l	set_ccr_zero	bclr	#1, @byte_dst:16	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 1  r2l	set_ccr_zero	bclr	#0, @byte_dst:16	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 0  r2l	test_gr_a5a5 0		; Make sure other general regs not disturbed	test_gr_a5a5 1.if (sim_cpu == h8300)	test_h_gr16  0xa500   r2.else	test_h_gr32  0xa5a5a500 er2.endif	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7.endif.endifbset_rs8_rd8:	set_grs_a5a5		; Fill all general regs with a fixed pattern	;;  bset rs8, rd8	mov	#0, r1h	mov	#0, r1l	set_ccr_zero	bset	r1h, r1l	test_cc_clear	test_h_gr8 1 r1l	mov	#1, r1h	set_ccr_zero	bset	r1h, r1l	test_cc_clear	test_h_gr8 3 r1l	mov	#2, r1h	set_ccr_zero	bset	r1h, r1l	test_cc_clear	test_h_gr8 7 r1l	mov	#3, r1h	set_ccr_zero	bset	r1h, r1l	test_cc_clear	test_h_gr8 15 r1l	mov	#4, r1h	set_ccr_zero	bset	r1h, r1l	test_cc_clear	test_h_gr8 31 r1l	mov	#5, r1h	set_ccr_zero	bset	r1h, r1l	test_cc_clear	test_h_gr8 63 r1l	mov	#6, r1h	set_ccr_zero	bset	r1h, r1l	test_cc_clear	test_h_gr8 127 r1l	mov	#7, r1h	set_ccr_zero	bset	r1h, r1l	test_cc_clear	test_h_gr8 255 r1l.if (sim_cpu == h8300)	test_h_gr16 0x07ff, r1.else	test_h_gr32  0xa5a507ff er1.endifbclr_rs8_rd8:		mov	#7, r1h	set_ccr_zero	bclr	r1h, r1l	test_cc_clear	test_h_gr8 127 r1l	mov	#6, r1h	set_ccr_zero	bclr	r1h, r1l	test_cc_clear	test_h_gr8 63 r1l	mov	#5, r1h	set_ccr_zero	bclr	r1h, r1l	test_cc_clear	test_h_gr8 31 r1l	mov	#4, r1h	set_ccr_zero	bclr	r1h, r1l	test_cc_clear	test_h_gr8 15 r1l	mov	#3, r1h	set_ccr_zero	bclr	r1h, r1l	test_cc_clear	test_h_gr8 7 r1l	mov	#2, r1h	set_ccr_zero	bclr	r1h, r1l	test_cc_clear	test_h_gr8 3 r1l	mov	#1, r1h	set_ccr_zero	bclr	r1h, r1l	test_cc_clear	test_h_gr8 1 r1l	mov	#0, r1h	set_ccr_zero	bclr	r1h, r1l	test_cc_clear	test_h_gr8 0 r1l	test_gr_a5a5 0		; Make sure other general regs not disturbed.if (sim_cpu == h8300)	test_h_gr16 0x0000 r1.else	test_h_gr32  0xa5a50000 er1.endif	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)bset_rs8_ind:	set_grs_a5a5		; Fill all general regs with a fixed pattern	;;  bset rs8, @erd	mov	#byte_dst, er1	mov	#0, r2h	set_ccr_zero	bset	r2h, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 1 r2l	mov	#1, r2h	set_ccr_zero	bset	r2h, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 3 r2l	mov	#2, r2h	set_ccr_zero	bset	r2h, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 7 r2l	mov	#3, r2h	set_ccr_zero	bset	r2h, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 15 r2l	mov	#4, r2h	set_ccr_zero	bset	r2h, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 31 r2l	mov	#5, r2h	set_ccr_zero	bset	r2h, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 63 r2l	mov	#6, r2h	set_ccr_zero	bset	r2h, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 127 r2l	mov	#7, r2h	set_ccr_zero	bset	r2h, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 255 r2l.if (sim_cpu == h8300)	test_h_gr16  0x07ff r2.else	test_h_gr32  0xa5a507ff er2.endifbclr_rs8_ind:		mov	#7, r2h	set_ccr_zero	bclr	r2h, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 127 r2l	mov	#6, r2h	set_ccr_zero	bclr	r2h, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 63 r2l	mov	#5, r2h	set_ccr_zero	bclr	r2h, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 31 r2l	mov	#4, r2h	set_ccr_zero	bclr	r2h, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 15 r2l	mov	#3, r2h	set_ccr_zero	bclr	r2h, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 7  r2l	mov	#2, r2h	set_ccr_zero	bclr	r2h, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 3  r2l	mov	#1, r2h	set_ccr_zero	bclr	r2h, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 1  r2l	mov	#0, r2h	set_ccr_zero	bclr	r2h, @er1	test_cc_clear	mov	@er1, r2l	test_h_gr8 0  r2l	test_gr_a5a5 0		; Make sure other general regs not disturbed.if (sim_cpu == h8300)	test_h_gr16  byte_dst r1	test_h_gr16  0x0000   r2.else	test_h_gr32  byte_dst   er1	test_h_gr32  0xa5a50000 er2.endif	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7.if (sim_cpu > h8300h)bset_rs8_abs32:	set_grs_a5a5		; Fill all general regs with a fixed pattern	;;  bset rs8, @aa:32	mov	#0, r2h	set_ccr_zero	bset	r2h, @byte_dst:32	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 1 r2l	mov	#1, r2h	set_ccr_zero	bset	r2h, @byte_dst:32	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 3 r2l	mov	#2, r2h	set_ccr_zero	bset	r2h, @byte_dst:32	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 7 r2l	mov	#3, r2h	set_ccr_zero	bset	r2h, @byte_dst:32	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 15 r2l	mov	#4, r2h	set_ccr_zero	bset	r2h, @byte_dst:32	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 31 r2l	mov	#5, r2h	set_ccr_zero	bset	r2h, @byte_dst:32	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 63 r2l	mov	#6, r2h	set_ccr_zero	bset	r2h, @byte_dst:32	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 127 r2l	mov	#7, r2h	set_ccr_zero	bset	r2h, @byte_dst:32	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 255 r2l.if (sim_cpu == h8300)	test_h_gr16  0x07ff r2.else	test_h_gr32  0xa5a507ff er2.endifbclr_rs8_abs32:		mov	#7, r2h	set_ccr_zero	bclr	r2h, @byte_dst:32	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 127 r2l	mov	#6, r2h	set_ccr_zero	bclr	r2h, @byte_dst:32	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 63 r2l	mov	#5, r2h	set_ccr_zero	bclr	r2h, @byte_dst:32	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 31 r2l	mov	#4, r2h	set_ccr_zero	bclr	r2h, @byte_dst:32	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 15 r2l	mov	#3, r2h	set_ccr_zero	bclr	r2h, @byte_dst:32	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 7  r2l	mov	#2, r2h	set_ccr_zero	bclr	r2h, @byte_dst:32	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 3  r2l	mov	#1, r2h	set_ccr_zero	bclr	r2h, @byte_dst:32	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 1  r2l	mov	#0, r2h	set_ccr_zero	bclr	r2h, @byte_dst:32	test_cc_clear	mov	@byte_dst, r2l	test_h_gr8 0  r2l	test_gr_a5a5 0		; Make sure other general regs not disturbed	test_gr_a5a5 1.if (sim_cpu == h8300)	test_h_gr16  0x0000   r2.else	test_h_gr32  0xa5a50000 er2.endif	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7.endif.endif.if (sim_cpu == h8sx)bset_eq_imm3_abs16:	set_grs_a5a5		; Fill all general regs with a fixed pattern	;;  bset/eq xx:3, rd8	mov	#0, @byte_dst	set_ccr_zero	bset/eq	#0, @byte_dst:16 ; Zero is clear, should have no effect.	test_cc_clear	mov	@byte_dst, r1l	test_h_gr8 0 r1l	set_ccr_zero	orc	#4, ccr		; Set zero flag	bset/eq	#0, @byte_dst:16 ; Zero is set: operation should succeed.	test_neg_clear	test_zero_set	test_ovf_clear	test_carry_clear	mov	@byte_dst, r1l	test_h_gr8 1 r1lbclr_eq_imm3_abs32:	mov	#1, @byte_dst	set_ccr_zero	bclr/eq	#0, @byte_dst:32 ; Zero is clear, should have no effect.	test_cc_clear	mov	@byte_dst, r1l	test_h_gr8 1 r1l	set_ccr_zero	orc	#4, ccr		; Set zero flag	bclr/eq	#0, @byte_dst:32 ; Zero is set: operation should succeed.	test_neg_clear	test_zero_set	test_ovf_clear	test_carry_clear	mov	@byte_dst, r1l	test_h_gr8 0 r1l	test_gr_a5a5 0		; Make sure other general regs not disturbed	test_h_gr32  0xa5a5a500 er1	test_gr_a5a5 2	test_gr_a5a5 3	test_gr_a5a5 4	test_gr_a5a5 5	test_gr_a5a5 6	test_gr_a5a5 7bset_ne_imm3_abs16:	set_grs_a5a5		; Fill all general regs with a fixed pattern	;;  bset/ne xx:3, aa:16	mov	#0, @byte_dst	set_ccr_zero	orc	#4, ccr		; Set zero flag	bset/ne	#0, @byte_dst:16 ; Zero is set; should have no effect.	test_zero_set	test_neg_clear	test_ovf_clear	test_carry_clear	mov	@byte_dst, r1l	test_h_gr8 0 r1l	set_ccr_zero	bset/ne	#0, @byte_dst:16 ; Zero is clear: operation should succeed.	test_cc_clear	mov	@byte_dst, r1l	test_h_gr8 1 r1lbclr_ne_imm3_abs32:	mov	#1, @byte_dst	set_ccr_zero	orc	#4, ccr		; Set zero flag	;; bclr/ne xx:3, aa:16	bclr/ne	#0, @byte_dst:32 ; Zero is set, should have no effect.	test_neg_clear	test_zero_set	test_ovf_clear	test_carry_clear	mov	@byte_dst, r1l	test_h_gr8 1 r1l	set_ccr_zero	bclr/ne	#0, @byte_dst:32 ; Zero is clear: operation should succeed.	test_cc_clear	mov	@byte_dst, r1l	test_h_gr8 0 r1l	test_gr_a5a5 0		; Make sure other general regs not disturbed	test_h_gr32  0xa5a5a500 er1	test_gr_a5a5 2	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 + -