OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [nog_patch_67/] [or1ksim/] [cpu/] [common/] [abstract.h] - Diff between revs 37 and 123

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 37 Rev 123
Line 30... Line 30...
        struct label_entry *next;
        struct label_entry *next;
};
};
 
 
/* Structure that holds disassembled instruction. */
/* Structure that holds disassembled instruction. */
struct insn_entry {
struct insn_entry {
        char *insn;
 
        char *op1;
        char *op1;
        char *op2;
        char *op2;
        char *op3;
        char *op3;
        char *op4;
        char *op4;
 
  /* MM: Instruction index. */
 
  int insn_index;
};
};
 
 
/* This is an abstract memory type rather than physical memory type. It holds
/* This is an abstract memory type rather than physical memory type. It holds
disassembled instructions. */
disassembled instructions. */
struct mem_entry {
struct mem_entry {
Line 47... Line 48...
        struct label_entry *label; /* labels */
        struct label_entry *label; /* labels */
        struct insn_entry *insn; /* insn */
        struct insn_entry *insn; /* insn */
};
};
 
 
enum insn_type { unknown, exception, arith, shift, compare, branch,
enum insn_type { unknown, exception, arith, shift, compare, branch,
                 jump, load, store, movimm, move, extend, nop };
                 jump, load, store, movimm, move, extend, nop, mac };
 
 
/* Instruction queue */
/* Instruction queue */
struct iqueue_entry {
struct iqueue_entry {
        char insn[INSNAME_LEN];
 
        enum insn_type func_unit;
        enum insn_type func_unit;
 
  int insn_index;
        char op1[OPERANDNAME_LEN];
        char op1[OPERANDNAME_LEN];
        char op2[OPERANDNAME_LEN];
        char op2[OPERANDNAME_LEN];
        char op3[OPERANDNAME_LEN];
        char op3[OPERANDNAME_LEN];
        char op4[OPERANDNAME_LEN];
        char op4[OPERANDNAME_LEN];
        char *dependdst;
        char *dependdst;
Line 65... Line 66...
        unsigned long insn_addr;
        unsigned long insn_addr;
};
};
 
 
/* Completition queue */
/* Completition queue */
struct icomplet_entry {
struct icomplet_entry {
        char insn[INSNAME_LEN];
 
        enum insn_type func_unit;
        enum insn_type func_unit;
 
  int  insn_index;
        char op1[OPERANDNAME_LEN];
        char op1[OPERANDNAME_LEN];
        char op2[OPERANDNAME_LEN];
        char op2[OPERANDNAME_LEN];
        char op3[OPERANDNAME_LEN];
        char op3[OPERANDNAME_LEN];
        char op4[OPERANDNAME_LEN];
        char op4[OPERANDNAME_LEN];
        char *dependdst;
        char *dependdst;
Line 93... Line 94...
extern unsigned long pc;
extern unsigned long pc;
 
 
extern struct mem_entry mem[MEMORY_LEN];
extern struct mem_entry mem[MEMORY_LEN];
extern void dumpmemory(unsigned int from, unsigned int to);
extern void dumpmemory(unsigned int from, unsigned int to);
extern unsigned long eval_label(char *label);
extern unsigned long eval_label(char *label);
extern unsigned long eval_mem32(unsigned long memaddr);
extern unsigned long eval_mem32(unsigned long memaddr,int*);
extern unsigned short eval_mem16(unsigned long memaddr);
extern unsigned short eval_mem16(unsigned long memaddr,int*);
extern unsigned char eval_mem8(unsigned long memaddr);
extern unsigned char eval_mem8(unsigned long memaddr,int*);
extern void set_mem32(unsigned long memaddr, unsigned long value);
extern void set_mem32(unsigned long memaddr, unsigned long value,int*);
extern void set_mem16(unsigned long memaddr, unsigned short value);
extern void set_mem16(unsigned long memaddr, unsigned short value,int*);
extern void set_mem8(unsigned long memaddr, unsigned char value);
extern void set_mem8(unsigned long memaddr, unsigned char value,int*);
 
 
 
unsigned long evalsim_mem32(unsigned long,int*);
 
unsigned short evalsim_mem16(unsigned long,int*);
 
unsigned char evalsim_mem8(unsigned long,int*);
 
void setsim_mem32(unsigned long,unsigned long);
 
void setsim_mem16(unsigned long,unsigned short);
 
void setsim_mem8(unsigned long,unsigned char);
 
 
 
extern int GlobalMode; /* Added by CZ 26/05/01 */
 
 
 
/* Added by MM */
 
#ifndef LONGEST
 
 
 
#ifdef BFD64
 
 
 
#define LONGEST BFD_HOST_64_BIT
 
#define ULONGEST BFD_HOST_U_64_BIT
 
 
 
#else /* No BFD64 */
 
 
 
#ifdef CC_HAS_LONG_LONG
 
#define LONGEST long long
 
#define ULONGEST unsigned long long
 
#else
 
#ifdef BFD_HOST_64_BIT
 
/* BFD_HOST_64_BIT is defined for some hosts that don't have long long
 
   (e.g. i386-windows) so try it.  */
 
#define LONGEST BFD_HOST_64_BIT
 
#define ULONGEST BFD_HOST_U_64_BIT
 
#else
 
#define LONGEST long
 
#define ULONGEST unsigned long
 
#endif
 
#endif
 
 
 
#endif /* No BFD64 */
 
 
 
#endif /* ! LONGEST */
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

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