summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex AUVOLAT <alex.auvolat@ens.fr>2014-01-08 19:42:07 +0100
committerAlex AUVOLAT <alex.auvolat@ens.fr>2014-01-08 19:42:07 +0100
commitb8df2847aa60728b72a9a48769c8662214ba30c8 (patch)
tree115cdfa63d12117aa4e6c1b82a3ebfdfd42a9d31
parent9139862d65f5aa720812173decaa8c0f0abf26c6 (diff)
downloadSystDigit-Projet-b8df2847aa60728b72a9a48769c8662214ba30c8.tar.gz
SystDigit-Projet-b8df2847aa60728b72a9a48769c8662214ba30c8.zip
Remove useless D initialization, remove LA instruction (actually, it is LI)
-rw-r--r--asm/asmlex.mll1
-rw-r--r--asm/asmpars.mly3
-rw-r--r--asm/test.asm3
-rw-r--r--cpu/prog_test1.rom9
4 files changed, 6 insertions, 10 deletions
diff --git a/asm/asmlex.mll b/asm/asmlex.mll
index 1c7e3e7..22f77d7 100644
--- a/asm/asmlex.mll
+++ b/asm/asmlex.mll
@@ -23,7 +23,6 @@
"liu",LIU;
"liuz",LIUZ;
"lra",LRA;
- "la",LA;
"li",LI;
"move",MOVE;
"jz",JZ;
diff --git a/asm/asmpars.mly b/asm/asmpars.mly
index 8dbf665..d15c8af 100644
--- a/asm/asmpars.mly
+++ b/asm/asmpars.mly
@@ -38,7 +38,7 @@
%}
%token EOF,COLON,TEXT,DATA,BYTE,WORD,ASCIIZ,MINUS,MOVE,JZ,JNZ,LP,RP
-%token POP,PUSH,INCRI,SHI,JJ,JAL,JR,JALR,LW,SW,LB,SB,NOT,LIL,LILZ,LIU,LIUZ,LRA,LA,LI
+%token POP,PUSH,INCRI,SHI,JJ,JAL,JR,JALR,LW,SW,LB,SB,NOT,LIL,LILZ,LIU,LIUZ,LRA,LI
%token<Asm.reg> REG
%token<Asm.fmt_r> ROP,RIOP
%token<string> ID
@@ -120,7 +120,6 @@ _instr:
| LRA i=int { assert (i > -(1 lsl 10) && i < 1 lsl 10);
add pc 2; [Lra (Imm i)] }
| LRA l=ID { add pc 2; [Lra (Lab l)] }
- | LA r=REG l=ID { li false r (Lab l) }
| LIL r=REG i=int { add pc 2; [Lil (r,Imm i)] }
| LILZ r=REG i=int { add pc 2; [Lilz (r,Imm i)] }
| LIU r=REG i=int { add pc 2; [Liu (r,Imm i)] }
diff --git a/asm/test.asm b/asm/test.asm
index 78a56c4..2a9dd80 100644
--- a/asm/test.asm
+++ b/asm/test.asm
@@ -1,12 +1,11 @@
.text
- add D Z Z
init:
liuz B 0x40
lw B 0(B)
jz B init
add D D B
push D
- la A msgtick
+ li A msgtick
jal ser_out_msg
pop D
j init
diff --git a/cpu/prog_test1.rom b/cpu/prog_test1.rom
index 2604833..c6db00e 100644
--- a/cpu/prog_test1.rom
+++ b/cpu/prog_test1.rom
@@ -1,15 +1,14 @@
-56 8
-00000000 00100000 # add D Z Z
+54 8
# init:
00000010 01011011 # liuz B 64
00000010 01000001 # lw B 0(B)
-01000000 10110011 # lilz E init
+00000000 10110011 # lilz E init
00000000 10101011 # liu E init
01000010 10101010 # jer E B Z
00010001 00100000 # add D D B
01111111 11101100 # incri SP -2
00000111 00110001 # sw D 0(SP)
-01001100 10010011 # lilz A msgtick
+00001100 10010011 # lilz A msgtick
00000000 10001011 # liu A msgtick
00010000 00010010 # jal ser_out_msg
00000111 00100001 # lw D 0(SP)
@@ -20,7 +19,7 @@
01000000 11000011 # lil C 2
# ser_out_msg_loop:
00000100 01001001 # lb B 0(A)
-00001100 10110011 # lilz E ser_out_msg_ret
+01110100 10110011 # lilz E ser_out_msg_ret
00000000 10101011 # liu E ser_out_msg_ret
01000010 10101010 # jer E B Z
00000110 01011001 # sb B 0(C)