From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5053 invoked by alias); 15 Sep 2004 09:37:34 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 5044 invoked from network); 15 Sep 2004 09:37:29 -0000 Received: from unknown (HELO alice.acmet.com) (61.16.238.202) by sourceware.org with SMTP; 15 Sep 2004 09:37:29 -0000 Received: from monika ([192.168.0.81]) by alice.acmet.com (8.11.6/8.11.6) with ESMTP id i8F9kur28952; Wed, 15 Sep 2004 15:16:59 +0530 From: "Monika Chaddha" To: Cc: Subject: Need help at writing basic igen simulator Date: Wed, 15 Sep 2004 09:37:00 -0000 Message-ID: <00d901c49b07$ce93de10$5100a8c0@monika> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_00DA_01C49B35.E84C1A10" X-SW-Source: 2004-09/txt/msg00117.txt.bz2 This is a multi-part message in MIME format. ------=_NextPart_000_00DA_01C49B35.E84C1A10 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-length: 1987 Hello, Please find the attached text doc which contains two mails which I had sent earlier regarding simulator generator IGEN. These mails can help to make understanding about '*.igen' files and how they used to implement the instructions. Regards Monika >-----Original Message----- >From: gdb-owner@sources.redhat.com [mailto:gdb-owner@sources.redhat.com] On >Behalf Of David Voit >Sent: Wednesday, September 15, 2004 2:34 AM >To: gdb@sources.redhat.com >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 ------=_NextPart_000_00DA_01C49B35.E84C1A10 Content-Type: text/plain; name="igen.txt" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="igen.txt" Content-length: 5314 -----Original Message----- From: gdb-owner@sources.redhat.com [mailto:gdb-owner@sources.redhat.com] On= Behalf Of Monika Chaddha Sent: Thursday, July 22, 2004 12:42 PM To: 'Xinan Tang' Cc: gdb@sources.redhat.com Subject: RE: "igen vs. cgen?" Hi Xinan Igen would be used for adding new simulator input. There are many igen files present in the source... Mips.igen, M16.igen etc... The source for 'igen' (the simulator generator used) is present at 'src/sim/igen'. The 'igen' simulator generator takes input the mips.igen file which includes other igen files and generates the simulator source. The source for simulator will generate in build directory. The contents of this source will depend on the input 'mips.igen' file. These files are responsible for instruction implementation. U need new model name also to add any new instruction. Monika >-----Original Message----- >From: gdb-owner@sources.redhat.com [mailto:gdb-owner@sources.redhat.com] On >Behalf Of Xinan Tang >Sent: Thursday, July 22, 2004 12:46 AM >To: gdb@sources.redhat.com >Subject: "igen vs. cgen?" > >Hi > > When I search the gdb mailing list for adding a new simulator, two >approaches were mentioned: igen vs. cgen. > > Now igen (psim) was included within gdb, is there any consensus which one >should be used within gdb for adding a new simulator? > >Thanks > >--Xinan =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D -----Original Message----- From: gdb-owner@sources.redhat.com [mailto:gdb-owner@sources.redhat.com] On= Behalf Of Monika Chaddha Sent: Friday, July 23, 2004 11:12 AM To: 'Xinan Tang' Cc: gdb@sources.redhat.com Subject: RE: "igen vs. cgen?" Yes.... you will not find any specific document. I can provide u some idea ... if it helps u I'll take one example and try to explain u. 000000,5.RS,5.RT,5.RD,00000,100000:SPECIAL:32::ADD "add r, r, r" *mipsI: *mipsII: *mipsIII: *mipsIV: *mipsV: *mips32: *mips64: *vr4100: *vr5000: *r3900: { ------ ------ } The above is existing code for add instruction in mips.igen. You want that this instruction should be supported by your architecture. Firstly you need to change configuration files. Firstly add your architecture based information in configure files in main directory and sim directory Example: /src/sim/mips/configure For mipsisa32 the configuration information is as follows mipsisa32*-*-*) sim_gen=3DIGEN sim_igen_machine=3D"-M mips32" sim_igen_filter=3D"32,f" sim_mach_default=3D"mipsisa32" ;; Here sim_gen is simulator generator Sim_igen_machine will work as a model name ie for mipisa32 the model name is mips32. sim_igen_filter is size of instructions sim_mach_defult is for bfd. You also define ur architecture. Put yours entry wherever needed in the configuration files. Suppose u have defined as followes for architecture xyz xyz*-*-*) sim_gen=3DIGEN sim_igen_machine=3D"-M xyz" sim_igen_filter=3D"32,f" sim_mach_default=3D"mipsisa32" ;; Also add this target name in the configuration files in the main directory If you want add instruction to be support by ur architecture "xyz" Than put ur architecture name in the model list as follows 000000,5.RS,5.RT,5.RD,00000,100000:SPECIAL:32::ADD "add r, r, r" *mipsI: *mipsII: *mipsIII: *mipsIV: *mipsV: *mips32: *mips64: *vr4100: *vr5000: *r3900: *xyz: (new architecture) { ------ ------ } Now if u build gdb for "xyz", this "ADD" instruction will be supported.If u don't want to support this instruction ... remove ur model name from here. Regards Monika >-----Original Message----- >From: gdb-owner@sources.redhat.com [mailto:gdb-owner@sources.redhat.com] On >Behalf Of Xinan Tang >Sent: Friday, July 23, 2004 12:23 AM >To: Monika Chaddha >Cc: gdb@sources.redhat.com >Subject: RE: "igen vs. cgen?" > >Hi Monika, > > Thanks for the reply. > > Is there doc. showing any examples on how to add a new instruction or >disable some existing ones based on existing *.igen files? > > I googled the web and only found a few pages from psim online manual. >However it does not provide enough details. > >Thanks > >--Xinan > >-----Original Message----- >From: gdb-owner@sources.redhat.com >[mailto:gdb-owner@sources.redhat.com]On Behalf Of Monika Chaddha >Sent: Wednesday, July 21, 2004 11:12 PM >To: 'Xinan Tang' >Cc: gdb@sources.redhat.com >Subject: RE: "igen vs. cgen?" > > >Hi Xinan > >Igen would be used for adding new simulator input. There are many igen >files present in the source... Mips.igen, M16.igen etc... > >The source for 'igen' (the simulator generator used) is present at >'src/sim/igen'. The 'igen' simulator generator takes input the mips.igen >file which includes other igen files and generates the simulator source. > > >The source for simulator will generate in build directory. The contents >of this source will depend on the input 'mips.igen' file. These files >are responsible for instruction implementation. > >U need new model name also to add any new instruction. > >Monika > ___________________________________________________________________________= ------=_NextPart_000_00DA_01C49B35.E84C1A10--