 Aurelien Jarno
		
	
	
		cfc86988a8
		
	
	
	
	tcg: add ext{8,16,32}u_i{32,64} TCG ops
			Aurelien Jarno
		
	
	
		cfc86988a8
		
	
	
	
	tcg: add ext{8,16,32}u_i{32,64} TCG ops
		
			
			Currently zero extensions ops are implemented by a and op with a
constant. This is then catched in some backend, and replaced by
a zero extension instruction. While this works well on RISC
machines, this adds a useless register move on non-RISC machines.
Example on x86:
  ext16u_i32 r1, r2
is translated into
  mov    %eax,%ebx
  movzwl %bx, %ebx
while the optimized version should be:
  movzwl %ax, %ebx
This patch adds ext{8,16,32}u_i{32,64} TCG ops that can be
implemented in the backends to avoid emitting useless register
moves.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
		
	
Read the documentation in qemu-doc.html. Fabrice Bellard.
Description
				
					Languages
				
				
								
								
									C
								
								90.3%
							
						
							
								
								
									Dylan
								
								2.5%
							
						
							
								
								
									Python
								
								2.1%
							
						
							
								
								
									C++
								
								2%
							
						
							
								
								
									Shell
								
								1.7%
							
						
							
								
								
									Other
								
								1.4%