25 lines
		
	
	
	
		
			475 B
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
		
		
			
		
	
	
			25 lines
		
	
	
	
		
			475 B
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
|   | 	.globl		getcc
 | ||
|  | 	.type		getcc,#function | ||
|  | getcc: | ||
|  | 	ldx		[%o0 + PT_V9_TSTATE], %o1 | ||
|  | 	srlx		%o1, 32, %o1 | ||
|  | 	and		%o1, 0xf, %o1 | ||
|  | 	retl | ||
|  | 	 stx		%o1, [%o0 + PT_V9_G1] | ||
|  | 	.size		getcc,.-getcc | ||
|  | 
 | ||
|  | 	.globl		setcc
 | ||
|  | 	.type		setcc,#function | ||
|  | setcc: | ||
|  | 	ldx		[%o0 + PT_V9_TSTATE], %o1 | ||
|  | 	ldx		[%o0 + PT_V9_G1], %o2 | ||
|  | 	or		%g0, %ulo(TSTATE_ICC), %o3 | ||
|  | 	sllx		%o3, 32, %o3 | ||
|  | 	andn		%o1, %o3, %o1 | ||
|  | 	sllx		%o2, 32, %o2 | ||
|  | 	and		%o2, %o3, %o2 | ||
|  | 	or		%o1, %o2, %o1 | ||
|  | 	retl | ||
|  | 	 stx		%o1, [%o0 + PT_V9_TSTATE] | ||
|  | 	.size		setcc,.-setcc |