This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Need help at writing basic igen simulator
- From: David Voit <david dot voit at gmail dot com>
- To: gdb at sources dot redhat dot com
- Date: Tue, 14 Sep 2004 23:04:00 +0200
- Subject: Need help at writing basic igen simulator
Hello everybody,
I writed a simple igen file and want to test it now. So I tried to
integrate it with the existing v850 sourcecode (this looked the simplest
of all igen sims) but I find it still to complex for my needs. And now I
want to ask if somebody has tried the same and has a base for a simple
igen simulator which dont need to do much but execute the instructions in
the igen file.
I dont need:
- Any sort of memory handling
- Interupts
- or any other complicated things
I just want, in the begining, write a template for all MMIX instructions.
Here is the very very simple igen file at the moment:
:model:::mmix:mmix:
:internal::::illegal:
{
sim_io_eprintf (SD, "Illegal instruction at address 0x%lx\n",
(unsigned long) cia);
sim_engine_halt (SD, CPU, NULL, cia, sim_signalled, SIM_SIGILL);
}
11100011,8.reg,16.value::::setl
"setl reg, value"
{
/* TODO */
}
00100000,8.reg1,8.reg2,8.reg3::::add
"add reg1, reg2, reg3"
{
/* TODO */
}
00011000,8.reg1,8.reg2,8.reg3::::mul
"mul reg1, reg2, reg3"
{
/* TODO */
}
00100100,8.reg1,8.reg2,8.reg3::::sub
"sub reg1, reg2, reg3"
{
/* TODO */
}
00011100,8.reg1,8.reg2,8.reg3::::div
"div reg1, reg2, reg3"
{
/* TODO */
}
ps.:
If i write the instruction identifer in hexform like this
"8.0xe3,8.reg,16.value::::setl" igen fails with "ld-insn.c:293: assertion
failed - word->first->last < 0" it this the correct behavior.
Thanks David