cris: Add CRISv10 gdbstub support.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
This commit is contained in:
		
							parent
							
								
									4ffb9ae2e1
								
							
						
					
					
						commit
						4a0b59fe3b
					
				
							
								
								
									
										36
									
								
								gdbstub.c
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								gdbstub.c
									
									
									
									
									
								
							@ -1249,10 +1249,46 @@ static int cpu_gdb_write_register(CPUState *env, uint8_t *mem_buf, int n)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#define NUM_CORE_REGS 49
 | 
					#define NUM_CORE_REGS 49
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static int
 | 
				
			||||||
 | 
					read_register_crisv10(CPUState *env, uint8_t *mem_buf, int n)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (n < 15) {
 | 
				
			||||||
 | 
					        GET_REG32(env->regs[n]);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (n == 15) {
 | 
				
			||||||
 | 
					        GET_REG32(env->pc);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (n < 32) {
 | 
				
			||||||
 | 
					        switch (n) {
 | 
				
			||||||
 | 
					        case 16:
 | 
				
			||||||
 | 
					            GET_REG8(env->pregs[n - 16]);
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        case 17:
 | 
				
			||||||
 | 
					            GET_REG8(env->pregs[n - 16]);
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        case 20:
 | 
				
			||||||
 | 
					        case 21:
 | 
				
			||||||
 | 
					            GET_REG16(env->pregs[n - 16]);
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        default:
 | 
				
			||||||
 | 
					            if (n >= 23) {
 | 
				
			||||||
 | 
					                GET_REG32(env->pregs[n - 16]);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int cpu_gdb_read_register(CPUState *env, uint8_t *mem_buf, int n)
 | 
					static int cpu_gdb_read_register(CPUState *env, uint8_t *mem_buf, int n)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    uint8_t srs;
 | 
					    uint8_t srs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (env->pregs[PR_VR] < 32)
 | 
				
			||||||
 | 
					        return read_register_crisv10(env, mem_buf, n);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    srs = env->pregs[PR_SRS];
 | 
					    srs = env->pregs[PR_SRS];
 | 
				
			||||||
    if (n < 16) {
 | 
					    if (n < 16) {
 | 
				
			||||||
	GET_REG32(env->regs[n]);
 | 
						GET_REG32(env->regs[n]);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user