forked from mirrors/linux
		
	KVM/MIPS32: Privileged instruction/target branch emulation.
- The Guest kernel is run in UM and privileged instructions cause a trap. - If the instruction causing the trap is in a branch delay slot, the branch needs to be emulated to figure out the PC @ which the guest will resume execution. Signed-off-by: Sanjay Lal <sanjayl@kymasys.com> Cc: kvm@vger.kernel.org Cc: linux-mips@linux-mips.org Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
		
							parent
							
								
									9843b030cc
								
							
						
					
					
						commit
						e685c689f3
					
				
					 2 changed files with 1853 additions and 0 deletions
				
			
		
							
								
								
									
										1829
									
								
								arch/mips/kvm/kvm_mips_emul.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1829
									
								
								arch/mips/kvm/kvm_mips_emul.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										24
									
								
								arch/mips/kvm/kvm_mips_opcode.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								arch/mips/kvm/kvm_mips_opcode.h
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,24 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					* This file is subject to the terms and conditions of the GNU General Public
 | 
				
			||||||
 | 
					* License.  See the file "COPYING" in the main directory of this archive
 | 
				
			||||||
 | 
					* for more details.
 | 
				
			||||||
 | 
					*
 | 
				
			||||||
 | 
					* Copyright (C) 2012  MIPS Technologies, Inc.  All rights reserved.
 | 
				
			||||||
 | 
					* Authors: Sanjay Lal <sanjayl@kymasys.com>
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Define opcode values not defined in <asm/isnt.h>
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __KVM_MIPS_OPCODE_H__
 | 
				
			||||||
 | 
					#define __KVM_MIPS_OPCODE_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* COP0 Ops */
 | 
				
			||||||
 | 
					#define     mfmcz_op         0x0b	/*  01011  */
 | 
				
			||||||
 | 
					#define     wrpgpr_op        0x0e	/*  01110  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  COP0 opcodes (only if COP0 and CO=1):  */
 | 
				
			||||||
 | 
					#define     wait_op               0x20	/*  100000  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __KVM_MIPS_OPCODE_H__ */
 | 
				
			||||||
		Loading…
	
		Reference in a new issue