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

📄 viscopy.s

📁 优龙2410linux2.6.8内核源代码
💻 S
📖 第 1 页 / 共 3 页
字号:
VIS_enter:	be,pt			%xcc, dest_is_8byte_aligned	! CTI#ifdef __KERNEL__	 nop							! IEU0	Group#else	 andcc			%o0, 0x38, %g5			! IEU1	Group#endifdo_dest_8byte_align:	mov			8, %g1				! IEU0	sub			%g1, %g2, %g2			! IEU0	Group	andcc			%o0, 1, %g0			! IEU1	be,pt			%icc, 2f			! CTI	 sub			%o2, %g2, %o2			! IEU0	Group1:	ASI_SETSRC_NOBLK					! LSU	Group	EX(LDUB			[%o1] ASINORMAL, %o5, 				add %o2, %g2)			! Load	Group	add			%o1, 1, %o1			! IEU0	add			%o0, 1, %o0			! IEU1	ASI_SETDST_NOBLK					! LSU	Group	subcc			%g2, 1, %g2			! IEU1	Group	be,pn			%xcc, 3f			! CTI	 EX2(STB		%o5, [%o0 - 1] ASINORMAL,				add %g2, 1, %g2,				add %o2, %g2)			! Store2:	ASI_SETSRC_NOBLK					! LSU	Group	EX(LDUB			[%o1] ASINORMAL, %o5, 				add %o2, %g2)			! Load	Group	add			%o0, 2, %o0			! IEU0	EX2(LDUB		[%o1 + 1] ASINORMAL, %g3,				sub %o0, 2, %o0,				add %o2, %g2)			! Load	Group	ASI_SETDST_NOBLK					! LSU	Group	subcc			%g2, 2, %g2			! IEU1	Group	EX2(STB			%o5, [%o0 - 2] ASINORMAL,				add %g2, 2, %g2,				add %o2, %g2)			! Store	add			%o1, 2, %o1			! IEU0	bne,pt			%xcc, 2b			! CTI	Group	 EX2(STB		%g3, [%o0 - 1] ASINORMAL,				add %g2, 1, %g2,				add %o2, %g2)			! Store#ifdef __KERNEL__3:dest_is_8byte_aligned:	VISEntry	andcc			%o0, 0x38, %g5			! IEU1	Group#else3:	andcc			%o0, 0x38, %g5			! IEU1	Groupdest_is_8byte_aligned:#endif	be,pt			%icc, dest_is_64byte_aligned	! CTI	 mov			64, %g1				! IEU0	fmovd			%f0, %f2			! FPU	sub			%g1, %g5, %g5			! IEU0	Group	ASI_SETSRC_NOBLK					! LSU	Group	alignaddr		%o1, %g0, %g1			! GRU	Group	EXO2(LDDF		[%g1] ASINORMAL, %f4)		! Load	Group	sub			%o2, %g5, %o2			! IEU01:	EX(LDDF			[%g1 + 0x8] ASINORMAL, %f6,				add %o2, %g5)			! Load	Group	add			%g1, 0x8, %g1			! IEU0	Group	subcc			%g5, 8, %g5			! IEU1	ASI_SETDST_NOBLK					! LSU	Group	faligndata		%f4, %f6, %f0			! GRU	Group	EX2(STDF		%f0, [%o0] ASINORMAL,				add %g5, 8, %g5,				add %o2, %g5)			! Store	add			%o1, 8, %o1			! IEU0	Group	be,pn			%xcc, dest_is_64byte_aligned	! CTI	 add			%o0, 8, %o0			! IEU1	ASI_SETSRC_NOBLK					! LSU	Group	EX(LDDF			[%g1 + 0x8] ASINORMAL, %f4,				add %o2, %g5)			! Load	Group	add			%g1, 8, %g1			! IEU0	subcc			%g5, 8, %g5			! IEU1	ASI_SETDST_NOBLK					! LSU	Group	faligndata		%f6, %f4, %f0			! GRU	Group	EX2(STDF		%f0, [%o0] ASINORMAL,				add %g5, 8, %g5,				add %o2, %g5)			! Store	add			%o1, 8, %o1			! IEU0	ASI_SETSRC_NOBLK					! LSU	Group	bne,pt			%xcc, 1b			! CTI	Group	 add			%o0, 8, %o0			! IEU0dest_is_64byte_aligned:	membar		  #LoadStore | #StoreStore | #StoreLoad	! LSU	Group#ifndef __KERNEL__	wr			%g0, ASI_BLK_P, %asi		! LSU	Group#endif	subcc			%o2, 0x40, %g7			! IEU1	Group	mov			%o1, %g1			! IEU0	andncc			%g7, (0x40 - 1), %g7		! IEU1	Group	srl			%g1, 3, %g2			! IEU0	sub			%o2, %g7, %g3			! IEU0	Group	andn			%o1, (0x40 - 1), %o1		! IEU1	and			%g2, 7, %g2			! IEU0	Group	andncc			%g3, 0x7, %g3			! IEU1	fmovd			%f0, %f2			! FPU	sub			%g3, 0x10, %g3			! IEU0	Group	sub			%o2, %g7, %o2			! IEU1#ifdef __KERNEL__	or			asi_src, ASI_BLK_OR, asi_src	! IEU0	Group	or			asi_dest, ASI_BLK_OR, asi_dest	! IEU1#endif	alignaddr		%g1, %g0, %g0			! GRU	Group	add			%g1, %g7, %g1			! IEU0	Group	subcc			%o2, %g3, %o2			! IEU1	ASI_SETSRC_BLK						! LSU	Group	EXVIS1(LDBLK		[%o1 + 0x00] ASIBLK, %f0)	! LSU	Group	add			%g1, %g3, %g1			! IEU0	EXVIS1(LDBLK		[%o1 + 0x40] ASIBLK, %f16)	! LSU	Group	sub			%g7, 0x80, %g7			! IEU0	EXVIS(LDBLK		[%o1 + 0x80] ASIBLK, %f32)	! LSU	Group#ifdef __KERNEL__vispc:	sll			%g2, 9, %g2			! IEU0	Group	sethi			%hi(vis00), %g5			! IEU1	or			%g5, %lo(vis00), %g5		! IEU0	Group	jmpl			%g5 + %g2, %g0			! CTI	Group brk forced	 addcc			%o1, 0xc0, %o1			! IEU1	Group#else								! Clk1	Group 8-(								! Clk2	Group 8-(								! Clk3	Group 8-(								! Clk4	Group 8-(vispc:	rd			%pc, %g5			! PDU	Group 8-(	addcc			%g5, %lo(vis00 - vispc), %g5	! IEU1	Group	sll			%g2, 9, %g2			! IEU0	jmpl			%g5 + %g2, %g0			! CTI	Group brk forced	 addcc			%o1, 0xc0, %o1			! IEU1	Group#endif	.align			512		/* OK, here comes the fun part... */vis00:FREG_FROB(f0, f2, f4, f6, f8, f10,f12,f14,f16) LOOP_CHUNK1(o1, o0, g7, vis01)      FREG_FROB(f16,f18,f20,f22,f24,f26,f28,f30,f32) LOOP_CHUNK2(o1, o0, g7, vis02)      FREG_FROB(f32,f34,f36,f38,f40,f42,f44,f46,f0)  LOOP_CHUNK3(o1, o0, g7, vis03)      b,pt			%xcc, vis00+4; faligndata %f0, %f2, %f48vis01:FREG_FROB(f16,f18,f20,f22,f24,f26,f28,f30,f32) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f32,f34,f36,f38,f40,f42,f44,f46,f0)  STORE_JUMP(o0, f48, finish_f0) membar #Syncvis02:FREG_FROB(f32,f34,f36,f38,f40,f42,f44,f46,f0)  STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f0, f2, f4, f6, f8, f10,f12,f14,f16) STORE_JUMP(o0, f48, finish_f16) membar #Syncvis03:FREG_FROB(f0, f2, f4, f6, f8, f10,f12,f14,f16) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f16,f18,f20,f22,f24,f26,f28,f30,f32) STORE_JUMP(o0, f48, finish_f32) membar #Sync      VISLOOP_PADvis10:FREG_FROB(f2, f4, f6, f8, f10,f12,f14,f16,f18) LOOP_CHUNK1(o1, o0, g7, vis11)      FREG_FROB(f18,f20,f22,f24,f26,f28,f30,f32,f34) LOOP_CHUNK2(o1, o0, g7, vis12)      FREG_FROB(f34,f36,f38,f40,f42,f44,f46,f0, f2)  LOOP_CHUNK3(o1, o0, g7, vis13)      b,pt			%xcc, vis10+4; faligndata %f2, %f4, %f48vis11:FREG_FROB(f18,f20,f22,f24,f26,f28,f30,f32,f34) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f34,f36,f38,f40,f42,f44,f46,f0, f2)  STORE_JUMP(o0, f48, finish_f2) membar #Syncvis12:FREG_FROB(f34,f36,f38,f40,f42,f44,f46,f0, f2)  STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f2, f4, f6, f8, f10,f12,f14,f16,f18) STORE_JUMP(o0, f48, finish_f18) membar #Syncvis13:FREG_FROB(f2, f4, f6, f8, f10,f12,f14,f16,f18) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f18,f20,f22,f24,f26,f28,f30,f32,f34) STORE_JUMP(o0, f48, finish_f34) membar #Sync      VISLOOP_PADvis20:FREG_FROB(f4, f6, f8, f10,f12,f14,f16,f18,f20) LOOP_CHUNK1(o1, o0, g7, vis21)      FREG_FROB(f20,f22,f24,f26,f28,f30,f32,f34,f36) LOOP_CHUNK2(o1, o0, g7, vis22)      FREG_FROB(f36,f38,f40,f42,f44,f46,f0, f2, f4)  LOOP_CHUNK3(o1, o0, g7, vis23)      b,pt			%xcc, vis20+4; faligndata %f4, %f6, %f48vis21:FREG_FROB(f20,f22,f24,f26,f28,f30,f32,f34,f36) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f36,f38,f40,f42,f44,f46,f0, f2, f4)  STORE_JUMP(o0, f48, finish_f4) membar #Syncvis22:FREG_FROB(f36,f38,f40,f42,f44,f46,f0, f2, f4)  STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f4, f6, f8, f10,f12,f14,f16,f18,f20) STORE_JUMP(o0, f48, finish_f20) membar #Syncvis23:FREG_FROB(f4, f6, f8, f10,f12,f14,f16,f18,f20) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f20,f22,f24,f26,f28,f30,f32,f34,f36) STORE_JUMP(o0, f48, finish_f36) membar #Sync      VISLOOP_PADvis30:FREG_FROB(f6, f8, f10,f12,f14,f16,f18,f20,f22) LOOP_CHUNK1(o1, o0, g7, vis31)      FREG_FROB(f22,f24,f26,f28,f30,f32,f34,f36,f38) LOOP_CHUNK2(o1, o0, g7, vis32)      FREG_FROB(f38,f40,f42,f44,f46,f0, f2, f4, f6)  LOOP_CHUNK3(o1, o0, g7, vis33)      b,pt			%xcc, vis30+4; faligndata %f6, %f8, %f48vis31:FREG_FROB(f22,f24,f26,f28,f30,f32,f34,f36,f38) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f38,f40,f42,f44,f46,f0, f2, f4, f6)  STORE_JUMP(o0, f48, finish_f6) membar #Syncvis32:FREG_FROB(f38,f40,f42,f44,f46,f0, f2, f4, f6)  STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f6, f8, f10,f12,f14,f16,f18,f20,f22) STORE_JUMP(o0, f48, finish_f22) membar #Syncvis33:FREG_FROB(f6, f8, f10,f12,f14,f16,f18,f20,f22) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f22,f24,f26,f28,f30,f32,f34,f36,f38) STORE_JUMP(o0, f48, finish_f38) membar #Sync      VISLOOP_PADvis40:FREG_FROB(f8, f10,f12,f14,f16,f18,f20,f22,f24) LOOP_CHUNK1(o1, o0, g7, vis41)      FREG_FROB(f24,f26,f28,f30,f32,f34,f36,f38,f40) LOOP_CHUNK2(o1, o0, g7, vis42)      FREG_FROB(f40,f42,f44,f46,f0, f2, f4, f6, f8)  LOOP_CHUNK3(o1, o0, g7, vis43)      b,pt			%xcc, vis40+4; faligndata %f8, %f10, %f48vis41:FREG_FROB(f24,f26,f28,f30,f32,f34,f36,f38,f40) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f40,f42,f44,f46,f0, f2, f4, f6, f8)  STORE_JUMP(o0, f48, finish_f8) membar #Syncvis42:FREG_FROB(f40,f42,f44,f46,f0, f2, f4, f6, f8)  STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f8, f10,f12,f14,f16,f18,f20,f22,f24) STORE_JUMP(o0, f48, finish_f24) membar #Syncvis43:FREG_FROB(f8, f10,f12,f14,f16,f18,f20,f22,f24) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f24,f26,f28,f30,f32,f34,f36,f38,f40) STORE_JUMP(o0, f48, finish_f40) membar #Sync      VISLOOP_PADvis50:FREG_FROB(f10,f12,f14,f16,f18,f20,f22,f24,f26) LOOP_CHUNK1(o1, o0, g7, vis51)      FREG_FROB(f26,f28,f30,f32,f34,f36,f38,f40,f42) LOOP_CHUNK2(o1, o0, g7, vis52)      FREG_FROB(f42,f44,f46,f0, f2, f4, f6, f8, f10) LOOP_CHUNK3(o1, o0, g7, vis53)      b,pt			%xcc, vis50+4; faligndata %f10, %f12, %f48vis51:FREG_FROB(f26,f28,f30,f32,f34,f36,f38,f40,f42) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f42,f44,f46,f0, f2, f4, f6, f8, f10) STORE_JUMP(o0, f48, finish_f10) membar #Syncvis52:FREG_FROB(f42,f44,f46,f0, f2, f4, f6, f8, f10) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f10,f12,f14,f16,f18,f20,f22,f24,f26) STORE_JUMP(o0, f48, finish_f26) membar #Syncvis53:FREG_FROB(f10,f12,f14,f16,f18,f20,f22,f24,f26) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f26,f28,f30,f32,f34,f36,f38,f40,f42) STORE_JUMP(o0, f48, finish_f42) membar #Sync      VISLOOP_PADvis60:FREG_FROB(f12,f14,f16,f18,f20,f22,f24,f26,f28) LOOP_CHUNK1(o1, o0, g7, vis61)      FREG_FROB(f28,f30,f32,f34,f36,f38,f40,f42,f44) LOOP_CHUNK2(o1, o0, g7, vis62)      FREG_FROB(f44,f46,f0, f2, f4, f6, f8, f10,f12) LOOP_CHUNK3(o1, o0, g7, vis63)      b,pt			%xcc, vis60+4; faligndata %f12, %f14, %f48vis61:FREG_FROB(f28,f30,f32,f34,f36,f38,f40,f42,f44) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f44,f46,f0, f2, f4, f6, f8, f10,f12) STORE_JUMP(o0, f48, finish_f12) membar #Syncvis62:FREG_FROB(f44,f46,f0, f2, f4, f6, f8, f10,f12) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f12,f14,f16,f18,f20,f22,f24,f26,f28) STORE_JUMP(o0, f48, finish_f28) membar #Syncvis63:FREG_FROB(f12,f14,f16,f18,f20,f22,f24,f26,f28) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f28,f30,f32,f34,f36,f38,f40,f42,f44) STORE_JUMP(o0, f48, finish_f44) membar #Sync      VISLOOP_PADvis70:FREG_FROB(f14,f16,f18,f20,f22,f24,f26,f28,f30) LOOP_CHUNK1(o1, o0, g7, vis71)      FREG_FROB(f30,f32,f34,f36,f38,f40,f42,f44,f46) LOOP_CHUNK2(o1, o0, g7, vis72)      FREG_FROB(f46,f0, f2, f4, f6, f8, f10,f12,f14) LOOP_CHUNK3(o1, o0, g7, vis73)      b,pt			%xcc, vis70+4; faligndata %f14, %f16, %f48vis71:FREG_FROB(f30,f32,f34,f36,f38,f40,f42,f44,f46) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f46,f0, f2, f4, f6, f8, f10,f12,f14) STORE_JUMP(o0, f48, finish_f14) membar #Syncvis72:FREG_FROB(f46,f0, f2, f4, f6, f8, f10,f12,f14) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f14,f16,f18,f20,f22,f24,f26,f28,f30) STORE_JUMP(o0, f48, finish_f30) membar #Syncvis73:FREG_FROB(f14,f16,f18,f20,f22,f24,f26,f28,f30) STORE_SYNC(o0, f48) membar #Sync      FREG_FROB(f30,f32,f34,f36,f38,f40,f42,f44,f46) STORE_JUMP(o0, f48, finish_f46) membar #Sync      VISLOOP_PADfinish_f0:	FINISH_VISCHUNK(o0, f0,  f2,  g3)finish_f2:	FINISH_VISCHUNK(o0, f2,  f4,  g3)finish_f4:	FINISH_VISCHUNK(o0, f4,  f6,  g3)finish_f6:	FINISH_VISCHUNK(o0, f6,  f8,  g3)finish_f8:	FINISH_VISCHUNK(o0, f8,  f10, g3)finish_f10:	FINISH_VISCHUNK(o0, f10, f12, g3)finish_f12:	FINISH_VISCHUNK(o0, f12, f14, g3)finish_f14:	UNEVEN_VISCHUNK(o0, f14, f0,  g3)finish_f16:	FINISH_VISCHUNK(o0, f16, f18, g3)finish_f18:	FINISH_VISCHUNK(o0, f18, f20, g3)finish_f20:	FINISH_VISCHUNK(o0, f20, f22, g3)finish_f22:	FINISH_VISCHUNK(o0, f22, f24, g3)finish_f24:	FINISH_VISCHUNK(o0, f24, f26, g3)finish_f26:	FINISH_VISCHUNK(o0, f26, f28, g3)finish_f28:	FINISH_VISCHUNK(o0, f28, f30, g3)finish_f30:	UNEVEN_VISCHUNK(o0, f30, f0,  g3)finish_f32:	FINISH_VISCHUNK(o0, f32, f34, g3)finish_f34:	FINISH_VISCHUNK(o0, f34, f36, g3)finish_f36:	FINISH_VISCHUNK(o0, f36, f38, g3)finish_f38:	FINISH_VISCHUNK(o0, f38, f40, g3)finish_f40:	FINISH_VISCHUNK(o0, f40, f42, g3)finish_f42:	FINISH_VISCHUNK(o0, f42, f44, g3)finish_f44:	FINISH_VISCHUNK(o0, f44, f46, g3)finish_f46:	UNEVEN_VISCHUNK_LAST(o0, f46, f0,  g3)vis_out_slk:#ifdef __KERNEL__	srl		asi_src, 3, %g5				! IEU0	Group	xor		asi_src, ASI_BLK_XOR1, asi_src		! IEU1	xor		asi_src, %g5, asi_src			! IEU0	Group#endifvis_slk:ASI_SETSRC_NOBLK					! LSU	Group	EXVIS3(LDDF	[%o1] ASINORMAL, %f2)			! Load	Group	add		%o1, 8, %o1				! IEU0	subcc		%g3, 8, %g3				! IEU1	ASI_SETDST_NOBLK					! LSU	Group	faligndata	%f0, %f2, %f8				! GRU	Group	EXVIS4(STDF	%f8, [%o0] ASINORMAL)			! Store	bl,pn		%xcc, vis_out_slp			! CTI	 add		%o0, 8, %o0				! IEU0	Group	ASI_SETSRC_NOBLK					! LSU	Group	EXVIS3(LDDF	[%o1] ASINORMAL, %f0)			! Load	Group	add		%o1, 8, %o1				! IEU0	subcc		%g3, 8, %g3				! IEU1	ASI_SETDST_NOBLK					! LSU	Group	faligndata	%f2, %f0, %f8				! GRU	Group	EXVIS4(STDF	%f8, [%o0] ASINORMAL)			! Store	bge,pt		%xcc, vis_slk				! CTI	 add		%o0, 8, %o0				! IEU0	Groupvis_out_slp:#ifdef __KERNEL__	brz,pt		%o2, vis_ret				! CTI	Group	 mov		%g1, %o1				! IEU0	ba,pt		%xcc, vis_slp+4				! CTI	Group	 ASI_SETSRC_NOBLK					! LSU	Group#endifvis_out:brz,pt		%o2, vis_ret				! CTI	Group	 mov		%g1, %o1				! IEU0#ifdef __KERNEL__	srl		asi_src, 3, %g5				! IEU0	Group	xor		asi_src, ASI_BLK_XOR1, asi_src		! IEU1	xor		asi_src, %g5, asi_src			! IEU0	Group#endifvis_slp:ASI_SETSRC_NOBLK					! LSU	Group	EXO2(LDUB	[%o1] ASINORMAL, %g5)			! LOAD	add		%o1, 1, %o1				! IEU0	add		%o0, 1, %o0				! IEU1	ASI_SETDST_NOBLK					! LSU	Group	subcc		%o2, 1, %o2				! IEU1	bne,pt		%xcc, vis_slp				! CTI	 EX(STB		%g5, [%o0 - 1] ASINORMAL,			add %o2, 1)				! Store	Groupvis_ret:membar		#StoreLoad | #StoreStore		! LSU	Group	FPU_CLEAN_RETL__memcpy_short:	andcc		%o2, 1, %g0				! IEU1	Group	be,pt		%icc, 2f				! CTI1:	 ASI_SETSRC_NOBLK					! LSU	Group	EXO2(LDUB	[%o1] ASINORMAL, %g5)			! LOAD	Group	add		%o1, 1, %o1				! IEU0	add		%o0, 1, %o0				! IEU1	ASI_SETDST_NOBLK					! LSU	Group	subcc		%o2, 1, %o2				! IEU1	Group	be,pn		%xcc, short_ret				! CTI	 EX(STB		%g5, [%o0 - 1] ASINORMAL,			add %o2, 1)				! Store2:	ASI_SETSRC_NOBLK					! LSU	Group	EXO2(LDUB	[%o1] ASINORMAL, %g5)			! LOAD	Group	add		%o0, 2, %o0				! IEU0	EX2(LDUB	[%o1 + 1] ASINORMAL, %o5,			sub %o0, 2, %o0,			add %o2, %g0)				! LOAD	Group	add		%o1, 2, %o1				! IEU0	ASI_SETDST_NOBLK					! LSU	Group	subcc		%o2, 2, %o2				! IEU1	Group	EX(STB		%g5, [%o0 - 2] ASINORMAL,			add %o2, 2)				! Store	bne,pt		%xcc, 2b				! CTI	 EX(STB		%o5, [%o0 - 1] ASINORMAL,			add %o2, 1)				! Storeshort_ret:	NORMAL_RETL#ifndef __KERNEL__memcpy_private:memcpy:#ifndef REGS_64BIT	srl		%o2, 0, %o2				! IEU1	Group#endif		brz,pn		%o2, short_ret				! CTI	Group	 mov		%o0, %g6				! IEU0#endif__memcpy_entry:	cmp		%o2, 15					! IEU1	Group	bleu,pn		%xcc, __memcpy_short			! CTI	 cmp		%o2, (64 * 6)				! IEU1	Group	bgeu,pn		%xcc, VIS_enter				! CTI	 andcc		%o0, 7, %g2				! IEU1	Group	sub		%o0, %o1, %g5				! IEU0	andcc		%g5, 3, %o5				! IEU1	Group	bne,pn		%xcc, memcpy_noVIS_misaligned		! CTI	 andcc		%o1, 3, %g0				! IEU1	Group#ifdef REGS_64BIT	be,a,pt		%xcc, 3f				! CTI	 andcc		%o1, 4, %g0				! IEU1	Group	andcc		%o1, 1, %g0				! IEU1	Group#else /* !REGS_64BIT */	be,pt		%xcc, 5f				! CTI	 andcc		%o1, 1, %g0				! IEU1	Group#endif /* !REGS_64BIT */	be,pn		%xcc, 4f				! CTI	 andcc		%o1, 2, %g0				! IEU1	Group	ASI_SETSRC_NOBLK					! LSU	Group	EXO2(LDUB	[%o1] ASINORMAL, %g2)			! Load	Group	add		%o1, 1, %o1				! IEU0	add		%o0, 1, %o0				! IEU1	sub		%o2, 1, %o2				! IEU0	Group	ASI_SETDST_NOBLK					! LSU	Group	bne,pn		%xcc, 5f				! CTI	Group	 EX(STB		%g2, [%o0 - 1] ASINORMAL,			add %o2, 1)				! Store4:	ASI_SETSRC_NOBLK					! LSU	Group	EXO2(LDUH	[%o1] ASINORMAL, %g2)			! Load	Group	add		%o1, 2, %o1				! IEU0	add		%o0, 2, %o0				! IEU1	ASI_SETDST_NOBLK					! LSU	Group	sub		%o2, 2, %o2				! IEU0	EX(STH		%g2, [%o0 - 2] ASINORMAL,			add %o2, 2)				! Store	Group + bubble#ifdef REGS_64BIT5:	andcc		%o1, 4, %g0				! IEU13:	be,a,pn		%xcc, 2f				! CTI	 andcc		%o2, -128, %g7				! IEU1	Group	ASI_SETSRC_NOBLK					! LSU	Group	EXO2(LDUW	[%o1] ASINORMAL, %g5)			! Load	Group	add		%o1, 4, %o1				! IEU0	add		%o0, 4, %o0				! IEU1	ASI_SETDST_NOBLK					! LSU	Group	sub		%o2, 4, %o2				! IEU0	Group	EX(STW		%g5, [%o0 - 4] ASINORMAL,

⌨️ 快捷键说明

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