URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 243 to Rev 244
- ↔ Reverse comparison
Rev 243 → Rev 244
/trunk/or1ksim/cpu/common/parse.h
25,11 → 25,4
#define LABELEND_CHAR ":" |
/*#define OPERAND_DELIM ","*/ |
|
extern int nonempty(char *line); |
void adddatastr(char*,int*); |
void adddataword(char*,int*); |
void adddatahalf(char*,int*); |
void adddatabyte(char*,int*); |
void addlabel(char*,unsigned long,int*); |
void addprogram(unsigned long, unsigned long, int*); |
void parseline(char*,int*); |
char *strtoken(char *in, char *out, int which); |
/trunk/or1ksim/cpu/common/parse.c
47,26 → 47,6
static unsigned long transl_error; |
|
|
int nonempty(char *line) |
{ |
int i; |
|
for(i = 0; i < strlen(line); i++) |
if (!isspace(line[i])) |
return(1); |
return(0); |
} |
|
int nondigit(char *line) |
{ |
int i; |
|
for(i = 0; i < strlen(line); i++) |
if (!isdigit(line[i])) |
return(1); |
return(0); |
} |
|
char *strtoken(char *in, char *out, int which) |
{ |
char *super; |
132,81 → 112,6
return -1; |
} |
|
void adddatastr(char *str,int* breakpoint) |
{ |
if (str) |
str++; |
else |
return; |
|
for(; *str && *str != '\"'; str++, translate(freemem++,breakpoint)) |
if (*str == '\\') |
switch (*++str) { |
case 'n': setsim_mem8(translate(freemem,breakpoint), '\n'); |
break; |
case 't': setsim_mem8(translate(freemem,breakpoint), '\t'); |
break; |
case 'r': setsim_mem8(translate(freemem,breakpoint), '\r'); |
break; |
case '0': setsim_mem8(translate(freemem,breakpoint), '\0'); |
break; |
default: break; |
} |
else |
setsim_mem8(translate(freemem,breakpoint), *str); |
} |
|
/* Modified by CZ 26/05/01 */ |
/* Added code for new mode operation */ |
void adddataword(char *item,int* breakpoint) |
{ |
unsigned long num; |
|
if (isdigit(*item)) |
num = strtoul(item, NULL, 0); |
else |
num = eval_label(item); |
|
debug("adddataword: [0x%x] <= %x\n", translate(freemem,breakpoint), num); |
setsim_mem32(translate(freemem,breakpoint), num); |
|
if(config.filename) /* When external debugger loads data, it should not change freemem */ |
freemem += 4; |
} |
|
void adddatahalf(char *item,int* breakpoint) |
{ |
unsigned long num; |
|
if (isdigit(*item)) |
num = strtoul(item, NULL, 0); |
else |
num = eval_label(item); |
|
setsim_mem16(translate(freemem,breakpoint), num); |
|
freemem += 2; |
} |
|
void adddatabyte(char *item,int* breakpoint) |
{ |
unsigned long num; |
|
if (isdigit(*item)) |
num = strtoul(item, NULL, 0); |
else |
num = eval_label(item); |
|
setsim_mem8(translate(freemem,breakpoint),num); |
|
freemem++; |
} |
|
void adddataspace(char *num) |
{ |
freemem += atol(num); |
} |
|
void addlabel(char *label, unsigned long freemem,int* breakpoint) |
{ |
struct label_entry **tmp; |