mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			149 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			149 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| // BEGIN PREAMBLE
 | |
| 	.version	3.1
 | |
| 	.target	sm_30
 | |
| 	.address_size 64
 | |
| // END PREAMBLE
 | |
| 
 | |
| // BEGIN FUNCTION DEF: clock
 | |
| .func (.param.u32 %out_retval)clock
 | |
| {
 | |
| .reg.u32 %retval;
 | |
| 	.reg.u64 %hr10;
 | |
| 	.reg.u32 %r22;
 | |
| 	.reg.u32 %r23;
 | |
| 	.reg.u32 %r24;
 | |
| 	.local.align 8 .b8 %frame[8];
 | |
| 	// #APP 
 | |
| // 7 "subr.c" 1
 | |
| 	mov.u32 %r24, %clock;
 | |
| // 0 "" 2
 | |
| 	// #NO_APP 
 | |
| 		st.local.u32	[%frame], %r24;
 | |
| 		ld.local.u32	%r22, [%frame];
 | |
| 		mov.u32	%r23, %r22;
 | |
| 		mov.u32	%retval, %r23;
 | |
| 	st.param.u32	[%out_retval], %retval;
 | |
| 	ret;
 | |
| 	}
 | |
| // END FUNCTION DEF
 | |
| // BEGIN GLOBAL FUNCTION DEF: delay
 | |
| .visible .entry delay(.param.u64 %in_ar1, .param.u64 %in_ar2)
 | |
| {
 | |
| 	.reg.u64 %ar1;
 | |
| 	.reg.u64 %ar2;
 | |
| 	.reg.u64 %hr10;
 | |
| 	.reg.u64 %r22;
 | |
| 	.reg.u32 %r23;
 | |
| 	.reg.u64 %r24;
 | |
| 	.reg.u64 %r25;
 | |
| 	.reg.u32 %r26;
 | |
| 	.reg.u32 %r27;
 | |
| 	.reg.u32 %r28;
 | |
| 	.reg.u32 %r29;
 | |
| 	.reg.u32 %r30;
 | |
| 	.reg.u64 %r31;
 | |
| 	.reg.pred %r32;
 | |
| 	.local.align 8 .b8 %frame[24];
 | |
| 	ld.param.u64 %ar1, [%in_ar1];
 | |
| 	ld.param.u64 %ar2, [%in_ar2];
 | |
| 		mov.u64	%r24, %ar1;
 | |
| 		st.u64	[%frame+8], %r24;
 | |
| 		mov.u64	%r25, %ar2;
 | |
| 		st.local.u64	[%frame+16], %r25;
 | |
| 	{
 | |
| 		.param.u32 %retval_in;
 | |
| 	{
 | |
| 		call (%retval_in), clock;
 | |
| 	}
 | |
| 		ld.param.u32	%r26, [%retval_in];
 | |
| }
 | |
| 		st.local.u32	[%frame+4], %r26;
 | |
| 		mov.u32	%r27, 0;
 | |
| 		st.local.u32	[%frame], %r27;
 | |
| 		bra	$L4;
 | |
| $L5:
 | |
| 	{
 | |
| 		.param.u32 %retval_in;
 | |
| 	{
 | |
| 		call (%retval_in), clock;
 | |
| 	}
 | |
| 		ld.param.u32	%r28, [%retval_in];
 | |
| }
 | |
| 		mov.u32	%r23, %r28;
 | |
| 		ld.local.u32	%r30, [%frame+4];
 | |
| 		sub.u32	%r29, %r23, %r30;
 | |
| 		st.local.u32	[%frame], %r29;
 | |
| $L4:
 | |
| 		ld.local.s32	%r22, [%frame];
 | |
| 		ld.local.u64	%r31, [%frame+16];
 | |
| 		setp.lo.u64 %r32,%r22,%r31;
 | |
| 	@%r32	bra	$L5;
 | |
| 	ret;
 | |
| 	}
 | |
| // END FUNCTION DEF
 | |
| // BEGIN GLOBAL FUNCTION DEF: delay2
 | |
| .visible .entry delay2(.param.u64 %in_ar1, .param.u64 %in_ar2, .param.u64 %in_ar3)
 | |
| {
 | |
| 	.reg.u64 %ar1;
 | |
| 	.reg.u64 %ar2;
 | |
| 	.reg.u64 %ar3;
 | |
| 	.reg.u64 %hr10;
 | |
| 	.reg.u64 %r22;
 | |
| 	.reg.u32 %r23;
 | |
| 	.reg.u64 %r24;
 | |
| 	.reg.u64 %r25;
 | |
| 	.reg.u64 %r26;
 | |
| 	.reg.u32 %r27;
 | |
| 	.reg.u32 %r28;
 | |
| 	.reg.u32 %r29;
 | |
| 	.reg.u32 %r30;
 | |
| 	.reg.u32 %r31;
 | |
| 	.reg.u64 %r32;
 | |
| 	.reg.pred %r33;
 | |
| 	.reg.u64 %r34;
 | |
| 	.reg.u64 %r35;
 | |
| 	.local.align 8 .b8 %frame[32];
 | |
| 	ld.param.u64 %ar1, [%in_ar1];
 | |
| 	ld.param.u64 %ar2, [%in_ar2];
 | |
| 	ld.param.u64 %ar3, [%in_ar3];
 | |
| 		mov.u64	%r24, %ar1;
 | |
| 		st.local.u64	[%frame+8], %r24;
 | |
| 		mov.u64	%r25, %ar2;
 | |
| 		st.local.u64	[%frame+16], %r25;
 | |
| 		mov.u64	%r26, %ar3;
 | |
| 		st.local.u64	[%frame+24], %r26;
 | |
| 	{
 | |
| 		.param.u32 %retval_in;
 | |
| 	{
 | |
| 		call (%retval_in), clock;
 | |
| 	}
 | |
| 		ld.param.u32	%r27, [%retval_in];
 | |
| }
 | |
| 		st.local.u32	[%frame+4], %r27;
 | |
| 		mov.u32	%r28, 0;
 | |
| 		st.local.u32	[%frame], %r28;
 | |
| 		bra	$L8;
 | |
| $L9:
 | |
| 	{
 | |
| 		.param.u32 %retval_in;
 | |
| 	{
 | |
| 		call (%retval_in), clock;
 | |
| 	}
 | |
| 		ld.param.u32	%r29, [%retval_in];
 | |
| }
 | |
| 		mov.u32	%r23, %r29;
 | |
| 		ld.local.u32	%r31, [%frame+4];
 | |
| 		sub.u32	%r30, %r23, %r31;
 | |
| 		st.local.u32	[%frame], %r30;
 | |
| $L8:
 | |
| 		ld.local.s32	%r22, [%frame];
 | |
| 		ld.local.u64	%r32, [%frame+16];
 | |
| 		setp.lo.u64 %r33,%r22,%r32;
 | |
| 	@%r33	bra	$L9;
 | |
| 		ld.local.u64	%r34, [%frame+8];
 | |
| 		ld.local.u64	%r35, [%frame+24];
 | |
| 		st.u64	[%r34], %r35;
 | |
| 	ret;
 | |
| 	}
 | |
| // END FUNCTION DEF
 |