OpenCores
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;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.