Line 27... |
Line 27... |
#include "dmmu.h"
|
#include "dmmu.h"
|
#include "coff.h"
|
#include "coff.h"
|
#include "debug_unit.h"
|
#include "debug_unit.h"
|
#include "opcode/or32.h"
|
#include "opcode/or32.h"
|
#include "parse.h"
|
#include "parse.h"
|
|
#include "sim-config.h"
|
|
|
#define MEMORY_LEN 0x100000000
|
#define MEMORY_LEN 0x100000000
|
#define MAXLINE_LEN 18000
|
#define MAXLINE_LEN 18000
|
|
|
extern char *disassembled;
|
extern char *disassembled;
|
Line 167... |
Line 168... |
num = eval_label(item);
|
num = eval_label(item);
|
|
|
debug("adddataword: [0x%x] <= %x\n", translate(freemem,breakpoint), num);
|
debug("adddataword: [0x%x] <= %x\n", translate(freemem,breakpoint), num);
|
setsim_mem32(translate(freemem,breakpoint), num);
|
setsim_mem32(translate(freemem,breakpoint), num);
|
|
|
if(!GlobalMode)
|
if(config.filename) /* When external debugger loads data, it should not change freemem */
|
freemem += 4;
|
freemem += 4;
|
}
|
}
|
|
|
void adddatahalf(char *item,int* breakpoint)
|
void adddatahalf(char *item,int* breakpoint)
|
{
|
{
|
Line 233... |
Line 234... |
/* Added new mode execution code */
|
/* Added new mode execution code */
|
/* Changed parameters so address can be passed as argument */
|
/* Changed parameters so address can be passed as argument */
|
void addprogram(unsigned long address, unsigned long insn, int* breakpoint)
|
void addprogram(unsigned long address, unsigned long insn, int* breakpoint)
|
{
|
{
|
char insn_first2_char[3];
|
char insn_first2_char[3];
|
int vaddr = GlobalMode ? translate(address,breakpoint) : translate(freemem,breakpoint);
|
int vaddr = (!config.filename) ? translate(address,breakpoint) : translate(freemem,breakpoint);
|
|
|
debug("addprogram 1\n");
|
debug("addprogram 1\n");
|
|
|
*breakpoint += CheckDebugUnit(DebugStoreAddress,vaddr); /* 22/06/01 MM*/
|
*breakpoint += CheckDebugUnit(DebugStoreAddress,vaddr); /* 22/06/01 MM*/
|
*breakpoint += CheckDebugUnit(DebugStoreData,insn);
|
*breakpoint += CheckDebugUnit(DebugStoreData,insn);
|
|
|
setsim_mem32 (vaddr, insn);
|
setsim_mem32 (vaddr, insn);
|
|
|
if(!GlobalMode)
|
if(config.filename)
|
freemem += insn_len (insn_decode (insn));
|
freemem += insn_len (insn_decode (insn));
|
}
|
}
|
|
|
/* Load big-endian COFF file. At the moment it doesn't load symbols yet. */
|
/* Load big-endian COFF file. At the moment it doesn't load symbols yet. */
|
|
|