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

📄 perf_asm.s

📁 linux2.6.16版本
💻 S
📖 第 1 页 / 共 2 页
字号:
	ssm		0,0	nop	;	; RDR 21 write sequence	;	sync	ssm		0,0	STDIAG		(21)	ssm		0,0	b,n         perf_rdr_shift_out_W_leave	nop	ssm		0,0	nop	;	; RDR 22 write sequence	;	sync	ssm		0,0	STDIAG		(22)	ssm		0,0	b,n         perf_rdr_shift_out_W_leave	nop	ssm		0,0	nop	;	; RDR 23 write sequence	;	sync	ssm		0,0	STDIAG		(23)	ssm		0,0	b,n         perf_rdr_shift_out_W_leave	nop	ssm		0,0	nop	;	; RDR 24 write sequence	;	sync	ssm		0,0	STDIAG		(24)	ssm		0,0	b,n         perf_rdr_shift_out_W_leave	nop	ssm		0,0	nop	;	; RDR 25 write sequence	;	sync	ssm		0,0	STDIAG		(25)	ssm		0,0	b,n         perf_rdr_shift_out_W_leave	nop	ssm		0,0	nop	;	; RDR 26 write sequence	;	sync	ssm		0,0	STDIAG		(10)	STDIAG		(26)	ssm		0,0	b,n         perf_rdr_shift_out_W_leave	ssm		0,0	nop	;	; RDR 27 write sequence	;	sync	ssm		0,0	STDIAG		(11)	STDIAG		(27)	ssm		0,0	b,n         perf_rdr_shift_out_W_leave	ssm		0,0	nop	;	; RDR 28 write sequence	;	sync	ssm		0,0	STDIAG		(28)	ssm		0,0	b,n         perf_rdr_shift_out_W_leave	nop	ssm		0,0	nop	;	; RDR 29 write sequence	;	sync	ssm		0,0	STDIAG		(29)	ssm		0,0	b,n         perf_rdr_shift_out_W_leave	nop	ssm		0,0	nop	;	; RDR 30 write sequence	;	sync	ssm		0,0	STDIAG		(30)	ssm		0,0	b,n         perf_rdr_shift_out_W_leave	nop	ssm		0,0	nop	;	; RDR 31 write sequence	;	sync	ssm		0,0	STDIAG		(31)	ssm		0,0	b,n         perf_rdr_shift_out_W_leave	nop	ssm		0,0	nopperf_rdr_shift_out_W_leave:	bve		(%r2)	.exit	MTDIAG_2	(23)			; restore DR2	.procend;***********************************************************************;*;* Name: rdr_shift_in_U;*;* Description:;*	This routine shifts data in from the RDR in arg0 and returns;*	the result in ret0.  If the RDR is <= 64 bits in length, it;*	is shifted shifted backup immediately.  This is to compensate;*	for RDR10 which has bits that preclude PDC stack operations;*	when they are in the wrong state.;*;* Arguments:;*	arg0 : rdr to be read;*	arg1 : bit length of rdr;*;* Returns:;*	ret0 = next 64 bits of rdr data from staging register;*;* Register usage:;*	arg0 : rdr to be read						                        ;*	arg1 : bit length of rdr					                        ;*	%r24 - original DR2 value;*	%r23 - DR2 | DR2_SLOW_RET;*	%r1  - scratch;*;***********************************************************************	.export perf_rdr_shift_in_U,codeperf_rdr_shift_in_U:	.proc	.callinfo frame=0,NO_CALLS	.entry; read(shift in) the RDR.;; NOTE: The PCX-U ERS states that DR2_SLOW_RET must be set before any; shifting is done, from or to, remote diagnose registers.	depdi,z		1,DR2_SLOW_RET,1,%r29	MFDIAG_2	(24)	or			%r24,%r29,%r29	MTDIAG_2	(29)			; set DR2_SLOW_RET	nop	nop	nop	nop;; Start of next 32-byte cacheline;	nop	nop	nop	extrd,u		arg1,63,6,%r1	mtsar		%r1	shladd		arg0,2,%r0,%r1	; %r1 = 4 * RDR number	blr 		%r1,%r0		; branch to 8-instruction sequence	nop;; Start of next 32-byte cacheline;	SFDIAG		(0)		; RDR 0 read sequence	ssm		0,0	MFDIAG_1	(28)	shrpd		ret0,%r0,%sar,%r1	MTDIAG_1	(1)	STDIAG		(0)	ssm		0,0	b,n         perf_rdr_shift_in_U_leave	SFDIAG		(1)		; RDR 1 read sequence	ssm		0,0	MFDIAG_1	(28)	shrpd		ret0,%r0,%sar,%r1	MTDIAG_1	(1)	STDIAG		(1)	ssm		0,0	b,n         perf_rdr_shift_in_U_leave	sync				; RDR 2 read sequence	ssm		0,0	SFDIAG		(4)	ssm		0,0	MFDIAG_1	(28)	b,n         perf_rdr_shift_in_U_leave	ssm		0,0	nop	sync				; RDR 3 read sequence	ssm		0,0	SFDIAG		(3)	ssm		0,0	MFDIAG_1	(28)	b,n         perf_rdr_shift_in_U_leave	ssm		0,0	nop	sync				; RDR 4 read sequence	ssm		0,0	SFDIAG		(4)	ssm		0,0	MFDIAG_1	(28)	b,n         perf_rdr_shift_in_U_leave	ssm		0,0	nop	sync				; RDR 5 read sequence	ssm		0,0	SFDIAG		(5)	ssm		0,0	MFDIAG_1	(28)	b,n         perf_rdr_shift_in_U_leave	ssm		0,0	nop	sync				; RDR 6 read sequence	ssm		0,0	SFDIAG		(6)	ssm		0,0	MFDIAG_1	(28)	b,n         perf_rdr_shift_in_U_leave	ssm		0,0	nop	sync				; RDR 7 read sequence	ssm		0,0	SFDIAG		(7)	ssm		0,0	MFDIAG_1	(28)	b,n         perf_rdr_shift_in_U_leave	ssm		0,0	nop	b,n         perf_rdr_shift_in_U_leave	nop	nop	nop	nop	nop	nop	nop	SFDIAG		(9)		; RDR 9 read sequence	ssm		0,0	MFDIAG_1	(28)	shrpd		ret0,%r0,%sar,%r1	MTDIAG_1	(1)	STDIAG		(9)	ssm		0,0	b,n         perf_rdr_shift_in_U_leave	SFDIAG		(10)		; RDR 10 read sequence	ssm		0,0	MFDIAG_1	(28)	shrpd		ret0,%r0,%sar,%r1	MTDIAG_1	(1)	STDIAG		(10)	ssm		0,0	b,n         perf_rdr_shift_in_U_leave	SFDIAG		(11)		; RDR 11 read sequence	ssm		0,0	MFDIAG_1	(28)	shrpd		ret0,%r0,%sar,%r1	MTDIAG_1	(1)	STDIAG		(11)	ssm		0,0	b,n         perf_rdr_shift_in_U_leave	SFDIAG		(12)		; RDR 12 read sequence	ssm		0,0	MFDIAG_1	(28)	shrpd		ret0,%r0,%sar,%r1	MTDIAG_1	(1)	STDIAG		(12)	ssm		0,0	b,n         perf_rdr_shift_in_U_leave	SFDIAG		(13)		; RDR 13 read sequence	ssm		0,0	MFDIAG_1	(28)	shrpd		ret0,%r0,%sar,%r1	MTDIAG_1	(1)	STDIAG		(13)	ssm		0,0	b,n         perf_rdr_shift_in_U_leave	SFDIAG		(14)		; RDR 14 read sequence	ssm		0,0	MFDIAG_1	(28)	shrpd		ret0,%r0,%sar,%r1	MTDIAG_1	(1)	STDIAG		(14)	ssm		0,0	b,n         perf_rdr_shift_in_U_leave	SFDIAG		(15)		; RDR 15 read sequence	ssm		0,0	MFDIAG_1	(28)	shrpd		ret0,%r0,%sar,%r1	MTDIAG_1	(1)	STDIAG		(15)	ssm		0,0	b,n         perf_rdr_shift_in_U_leave	sync				; RDR 16 read sequence	ssm		0,0	SFDIAG		(16)	ssm		0,0	MFDIAG_1	(28)	b,n         perf_rdr_shift_in_U_leave	ssm		0,0	nop	SFDIAG		(17)		; RDR 17 read sequence	ssm		0,0	MFDIAG_1	(28)	shrpd		ret0,%r0,%sar,%r1	MTDIAG_1	(1)	STDIAG		(17)	ssm		0,0	b,n         perf_rdr_shift_in_U_leave	SFDIAG		(18)		; RDR 18 read sequence	ssm		0,0	MFDIAG_1	(28)	shrpd		ret0,%r0,%sar,%r1	MTDIAG_1	(1)	STDIAG		(18)	ssm		0,0	b,n         perf_rdr_shift_in_U_leave	b,n         perf_rdr_shift_in_U_leave	nop	nop	nop	nop	nop	nop	nop	sync				; RDR 20 read sequence	ssm		0,0	SFDIAG		(20)	ssm		0,0	MFDIAG_1	(28)	b,n         perf_rdr_shift_in_U_leave	ssm		0,0	nop	sync				; RDR 21 read sequence	ssm		0,0	SFDIAG		(21)	ssm		0,0	MFDIAG_1	(28)	b,n         perf_rdr_shift_in_U_leave	ssm		0,0	nop	sync				; RDR 22 read sequence	ssm		0,0	SFDIAG		(22)	ssm		0,0	MFDIAG_1	(28)	b,n         perf_rdr_shift_in_U_leave	ssm		0,0	nop	sync				; RDR 23 read sequence	ssm		0,0	SFDIAG		(23)	ssm		0,0	MFDIAG_1	(28)	b,n         perf_rdr_shift_in_U_leave	ssm		0,0	nop	sync				; RDR 24 read sequence	ssm		0,0	SFDIAG		(24)	ssm		0,0	MFDIAG_1	(28)	b,n         perf_rdr_shift_in_U_leave	ssm		0,0	nop	sync				; RDR 25 read sequence	ssm		0,0	SFDIAG		(25)	ssm		0,0	MFDIAG_1	(28)	b,n         perf_rdr_shift_in_U_leave	ssm		0,0	nop	SFDIAG		(26)		; RDR 26 read sequence	ssm		0,0	MFDIAG_1	(28)	shrpd		ret0,%r0,%sar,%r1	MTDIAG_1	(1)	STDIAG		(26)	ssm		0,0	b,n         perf_rdr_shift_in_U_leave	SFDIAG		(27)		; RDR 27 read sequence	ssm		0,0	MFDIAG_1	(28)	shrpd		ret0,%r0,%sar,%r1	MTDIAG_1	(1)	STDIAG		(27)	ssm		0,0	b,n         perf_rdr_shift_in_U_leave	sync				; RDR 28 read sequence	ssm		0,0	SFDIAG		(28)	ssm		0,0	MFDIAG_1	(28)	b,n         perf_rdr_shift_in_U_leave	ssm		0,0	nop	b,n         perf_rdr_shift_in_U_leave	nop	nop	nop	nop	nop	nop	nop	SFDIAG		(30)		; RDR 30 read sequence	ssm		0,0	MFDIAG_1	(28)	shrpd		ret0,%r0,%sar,%r1	MTDIAG_1	(1)	STDIAG		(30)	ssm		0,0	b,n         perf_rdr_shift_in_U_leave	SFDIAG		(31)		; RDR 31 read sequence	ssm		0,0	MFDIAG_1	(28)	shrpd		ret0,%r0,%sar,%r1	MTDIAG_1	(1)	STDIAG		(31)	ssm		0,0	b,n         perf_rdr_shift_in_U_leave	nopperf_rdr_shift_in_U_leave:	bve		    (%r2)	.exit	MTDIAG_2	(24)			; restore DR2	.procend;***********************************************************************;*;* Name: rdr_shift_out_U;*;* Description:;*	This routine moves data to the RDR's.  The double-word that;*	arg1 points to is loaded and moved into the staging register.;*	Then the STDIAG instruction for the RDR # in arg0 is called;*	to move the data to the RDR.;*;* Arguments:;*	arg0 = rdr target;*	arg1 = buffer pointer;*;* Returns:;*	None;*;* Register usage:;*	arg0 = rdr target;*	arg1 = buffer pointer;*	%r24 - DR2 | DR2_SLOW_RET;*	%r23 - original DR2 value;*;***********************************************************************	.export perf_rdr_shift_out_U,codeperf_rdr_shift_out_U:	.proc	.callinfo frame=0,NO_CALLS	.entry;; NOTE: The PCX-U ERS states that DR2_SLOW_RET must be set before any; shifting is done, from or to, the remote diagnose registers.;	depdi,z		1,DR2_SLOW_RET,1,%r24	MFDIAG_2	(23)	or		%r24,%r23,%r24	MTDIAG_2	(24)		; set DR2_SLOW_RET	MTDIAG_1	(25)		; data to the staging register	shladd		arg0,2,%r0,%r1	; %r1 = 4 * RDR number	blr		%r1,%r0		; branch to 8-instruction sequence	nop;; 32-byte cachline aligned;	sync				; RDR 0 write sequence	ssm		0,0	STDIAG		(0)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 1 write sequence	ssm		0,0	STDIAG		(1)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 2 write sequence	ssm		0,0	STDIAG		(2)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 3 write sequence	ssm		0,0	STDIAG		(3)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 4 write sequence	ssm		0,0	STDIAG		(4)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 5 write sequence	ssm		0,0	STDIAG		(5)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 6 write sequence	ssm		0,0	STDIAG		(6)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 7 write sequence	ssm		0,0	STDIAG		(7)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 8 write sequence	ssm		0,0	STDIAG		(8)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 9 write sequence	ssm		0,0	STDIAG		(9)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 10 write sequence	ssm		0,0	STDIAG		(10)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 11 write sequence	ssm		0,0	STDIAG		(11)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 12 write sequence	ssm		0,0	STDIAG		(12)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 13 write sequence	ssm		0,0	STDIAG		(13)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 14 write sequence	ssm		0,0	STDIAG		(14)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 15 write sequence	ssm		0,0	STDIAG		(15)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 16 write sequence	ssm		0,0	STDIAG		(16)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 17 write sequence	ssm		0,0	STDIAG		(17)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 18 write sequence	ssm		0,0	STDIAG		(18)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 19 write sequence	ssm		0,0	STDIAG		(19)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 20 write sequence	ssm		0,0	STDIAG		(20)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 21 write sequence	ssm		0,0	STDIAG		(21)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 22 write sequence	ssm		0,0	STDIAG		(22)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 23 write sequence	ssm		0,0	STDIAG		(23)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 24 write sequence	ssm		0,0	STDIAG		(24)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 25 write sequence	ssm		0,0	STDIAG		(25)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 26 write sequence	ssm		0,0	STDIAG		(26)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 27 write sequence	ssm		0,0	STDIAG		(27)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 28 write sequence	ssm		0,0	STDIAG		(28)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 29 write sequence	ssm		0,0	STDIAG		(29)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 30 write sequence	ssm		0,0	STDIAG		(30)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nop	sync				; RDR 31 write sequence	ssm		0,0	STDIAG		(31)	ssm		0,0	b,n         perf_rdr_shift_out_U_leave	nop	ssm		0,0	nopperf_rdr_shift_out_U_leave:	bve		(%r2)	.exit	MTDIAG_2	(23)			; restore DR2	.procend

⌨️ 快捷键说明

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