summaryrefslogtreecommitdiff
path: root/lib/simulator.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/simulator.c')
-rw-r--r--lib/simulator.c90
1 files changed, 45 insertions, 45 deletions
diff --git a/lib/simulator.c b/lib/simulator.c
index 64a2aff..d00a528 100644
--- a/lib/simulator.c
+++ b/lib/simulator.c
@@ -24,7 +24,7 @@
int HasToRun = 1, HasToReset;
-Uint32 base_addr = 0;
+Uint32 base_addr = 0;
Uint32 LireInstruction(void)
@@ -68,15 +68,15 @@ void Initialisation(void)
for (i = 0; i < TAILLE_MEMOIRE; i++)
Reset(&memoire_principale[i]);
- InitRegistres(); /* initialisation des registres */
- EcrireRegistreSP(ADD_SP); /* initialisation du stack pointer */
+ InitRegistres(); /* initialisation des registres */
+ EcrireRegistreSP(ADD_SP); /* initialisation du stack pointer */
}
void DecodeExec(Uint32 instruction, Uint32 entrypoint)
{
Uint32 champ_registre_resultat, val1, val2, resultat;
int test1, test2;
- Uint32 val; /* valeur qui va etre stockée */
+ Uint32 val; /* valeur qui va etre stockée */
if (Opcode(instruction) & 0x80) {
fpu(Opcode(instruction));
@@ -101,7 +101,7 @@ void DecodeExec(Uint32 instruction, Uint32 entrypoint)
IncrementeCompteurOrdinal();
}
}
- if (ValeurBit(Extension(instruction), 1) == 0) {/* Teste si l'opération est signée ou pas */
+ if (ValeurBit(Extension(instruction), 1) == 0) { /* Teste si l'opération est signée ou pas */
switch (Opcode(instruction)) {
case 0:
resultat = AdditionNonSigne(val1, val2);
@@ -127,7 +127,7 @@ void DecodeExec(Uint32 instruction, Uint32 entrypoint)
case 7:
resultat = SHR(val1);
break;
- }
+ }
} else {
switch (Opcode(instruction)) {
case 0:
@@ -286,8 +286,8 @@ void DecodeExec(Uint32 instruction, Uint32 entrypoint)
}
if (test1) {
Uint32 tmp;
-
-
+
+
tmp = LireInstruction();
if (Opcode(instruction) & 1) {
tmp += LireRegistrePC();
@@ -340,7 +340,7 @@ void DecodeExec(Uint32 instruction, Uint32 entrypoint)
if (ValeurBit(Extension(instruction), 0)) {
HasToRun = 0; /* Halt */
} else {
- HasToReset = 1; /* Reset */
+ HasToReset = 1; /* Reset */
ResetRegistres();
}
break;
@@ -389,56 +389,56 @@ void Debogueur(void)
AfficheReg();
}
-void ChargeBinaire(char * filename)
+void ChargeBinaire(char *filename)
{
-FILE * file;
-char message[BUFSIZ];
-Uint32 entrypoint, nb, ns, nbss, nr;
-Uint32 * relocation_table;
-int i;
-
-file = openfilereading(filename);
-if (readword(file)==0x58454e4e) { /*verification de la signature*/
-sprintf(message,_("Total Size Of The Binary File: %d"),readword(file));
-pushcontext(message);
-nb=readword(file); /* taille du segment text */
-ns=readword(file); /* taille des donnes statiques */
-nbss=readword(file); /* taille des donnees non init */
-nr=readword(file); /* taille de la table de relogement */
-
-relocation_table=Emalloc(nr);
-for (i=0;i<nr;i++) {
- relocation_table[i]=readword(file);
-}
+ FILE *file;
+ char message[BUFSIZ];
+ Uint32 entrypoint, nb, ns, nbss, nr;
+ Uint32 *relocation_table;
+ int i;
+ file = openfilereading(filename);
+ if (readword(file) == 0x58454e4e) { /*verification de la signature */
+ sprintf(message, _("Total Size Of The Binary File: %d"), readword(file));
+ pushcontext(message);
+ nb = readword(file); /* taille du segment text */
+ ns = readword(file); /* taille des donnes statiques */
+ nbss = readword(file); /* taille des donnees non init */
+ nr = readword(file); /* taille de la table de relogement */
+
+ relocation_table = Emalloc(nr);
+ for (i = 0; i < nr; i++) {
+ relocation_table[i] = readword(file);
+ }
-for(i=base_addr;i<(base_addr+nb+ns);i++) { /*chargement en ram de .text et .data */
- ST(i,readword(file));
-}
-
-for (i=0;i<nr;i++) { /* relogement */
- ST(base_addr+relocation_table[i],LD(base_addr+relocation_table[i])+base_addr);
-}
-
-free(relocation_table);
-InitRegistres(); /* initialisation des registres */
-EcrireRegistreSP(ADD_SP); /* initialisation du stack pointer */
+ for (i = base_addr; i < (base_addr + nb + ns); i++) { /*chargement en ram de .text et .data */
+ ST(i, readword(file));
+ }
+
+ for (i = 0; i < nr; i++) { /* relogement */
+ ST(base_addr + relocation_table[i], LD(base_addr + relocation_table[i]) + base_addr);
+ }
-EcrireRegistrePC(LireRegistrePC()+base_addr); /* maj de PC */
+ free(relocation_table);
-base_addr+=nb+ns+nbss;
-fclose(file);
+ InitRegistres(); /* initialisation des registres */
+ EcrireRegistreSP(ADD_SP); /* initialisation du stack pointer */
+ EcrireRegistrePC(LireRegistrePC() + base_addr); /* maj de PC */
+ base_addr += nb + ns + nbss;
+ fclose(file);
-}
+ }
+
-} \ No newline at end of file
+
+}