~ubuntu-branches/ubuntu/lucid/skyeye/lucid-proposed

« back to all changes in this revision

Viewing changes to utils/debugger/cf_regdefs.c

  • Committer: Bazaar Package Importer
  • Author(s): Yu Guanghui
  • Date: 2007-08-07 13:25:49 UTC
  • mfrom: (1.1.2 upstream) (2.1.1 lenny)
  • Revision ID: james.westby@ubuntu.com-20070807132549-96159k1obat1fxr0
Tags: 1.2.3-1
* New upstream release
* Added NO_BFD=1, don't require libbfd now. (Closes:Bug#423933) 

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
 
34
34
*/
35
35
 
 
36
#include "skyeye.h"
 
37
#include "skyeye_defs.h"
36
38
#include "skyeye2gdb.h"
37
39
#include "skyeye_types.h"
38
 
#include "memory.h"
 
40
#include "arch/coldfire/common/memory.h"
39
41
 
40
42
#define CF_NUM_REGS 29
41
43
extern struct _memory_core memory_core;
57
59
}
58
60
 
59
61
static int cf_store_register(int rn, unsigned char * memory){
 
62
        //SKYEYE_DBG("in %s\n",__FUNCTION__);
60
63
        WORD val = frommem(memory);
61
 
        if(0 <= rn < 8)
 
64
        if(0 <= rn && rn < 8)
62
65
                memory_core.d[rn] = val ;
63
 
        else if(8 <= rn < 16 )
 
66
        else if(8 <= rn && rn < 16 )
64
67
                memory_core.a[rn-8] = val ;
65
68
        else if(16 == rn)
66
69
                        memory_core.sr = val;
75
78
 
76
79
static int cf_fetch_register(int rn, unsigned char * memory){
77
80
        WORD regval;
78
 
        if(0 <= rn < 8)
 
81
        if(0 <= rn && rn < 8)
79
82
                regval =  memory_core.d[rn];
80
 
        else if(8 <= rn < 16 )
 
83
        else if(8 <= rn && rn < 16 )
81
84
                regval =  memory_core.a[rn-8];
82
85
        else if(16 == rn)
83
86
                regval =  memory_core.sr;
88
91
        else    
89
92
                return -1;      
90
93
        
 
94
        //SKYEYE_DBG("in %s, regval=%d,rn=%d\n",__FUNCTION__,regval,rn);
91
95
        tomem (memory, regval);
92
96
        return 0;
93
97
}
106
110
        cf_reg_defs.max_register_raw_size = 12;
107
111
        cf_reg_defs.store_register = cf_store_register;
108
112
        cf_reg_defs.fetch_register = cf_fetch_register;
 
113
        cf_reg_defs.endian_flag = HIGH;
109
114
        register_reg_type(&cf_reg_defs);
110
115
}