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
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
{
 | 
			
		||||
    uint8_t srs;
 | 
			
		||||
 | 
			
		||||
    if (env->pregs[PR_VR] < 32)
 | 
			
		||||
        return read_register_crisv10(env, mem_buf, n);
 | 
			
		||||
 | 
			
		||||
    srs = env->pregs[PR_SRS];
 | 
			
		||||
    if (n < 16) {
 | 
			
		||||
	GET_REG32(env->regs[n]);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user