OpenCores
URL https://opencores.org/ocsvn/minimips_superscalar/minimips_superscalar/trunk

Subversion Repositories minimips_superscalar

[/] [minimips_superscalar/] [trunk/] [gasm_with_mult2_instruction/] [Syntaxe] - Blame information for rev 6

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 mcafruni
; This file is part of gasm.
2
;
3
;
4
; If you encountered any problem, please contact :
5
;
6
;   lmouton@enserg.fr
7
;   shangoue@enserg.fr
8
;
9
 
10
 
11
 
12
;===============================================================================;
13
;                                                                               ;
14
;                                                                               ;
15
; Fichier de donnees sur la syntaxe de l'assembleur du microprocesseur miniMIPS ;
16
;                                                                               ;
17
;                                                                               ;
18
;===============================================================================;
19
 
20
; Les instructions SET s'adressant au preparateur doivent se trouver avant la première accolade.
21
 
22
 
23
SET MACROFILE   psd_instr.sx            ; Fichier macro par défaut (pseudo instructions).
24
SET NOCASSE                             ; L'assembleur MIPS n'est pas sensible à la casse
25
 
26
SET DEFINESTR   D                       ; Chaine de définition de macro
27
SET UNDEFSTR    U                       ; Chaine de supression de macro
28
 
29
; Il est également possible d'activer l'inclusion de fichier mais dans ce cas la liste
30
; d'assemblage sera interdite...
31
; SET INCLUDESTR        I               ; Chaine d'inclusion de fichier
32
 
33
; Définition du séparateur d'instructions (ici, NL)
34
; Le séparateur est utilisé lors de la détection d'une erreur par l'analyseur pour déterminer
35
; à partir de quel endroit poursuivre l'assemblage. Il effectue la recherche du prochain séparateur
36
; puis se place juste après et continue l'analyse.
37
SET SEP
38
 
39
; Définition des sous-types que l'on utilise dans la syntaxe de l'assembleur.
40
; Le nombre de sous-types pouvant actuellement être référencés est de 16.
41
SET NUMSST      3               ; Déclaration de deux sous types du type ALPHA
42
 
43
; Le troisième champ correspond au code du sous-type. Si plusieurs sont identiques,
44
; ils seront confondus par l'assembleur. On peut utiliser cette propriété pour
45
; définir plusieurs motifs définissant le même type.
46
; Codage des registres R0 à R31 (la notation R02 est autorisée) :
47
SET NEWSST      Reg     $?09    1
48
SET NEWSST      Reg     $?02?09 1
49
SET NEWSST      Reg     $3?01   1
50
 
51
; Mots clefs autorisées dans la déclaration de la syntaxe d'une instruction : Int, Alpha, Reg
52
; Mots clefs autorisés dans les propriétés de l'instruction : TMO, MSK, FUN
53
; Les masques doivent commencer par - et peuvent contenir - le caractère '_'
54
 
55
; Autorise les lignes vides
56
{
57
}
58
 
59
; Déclaration d'étiquette
60
{ Alpha: }
61
        FUN     Ajoute_Etiquette                ; Ajoute une étiquette dans la table
62
 
63
; DÉFINITION DES DIRECTIVES
64
 
65
; Directives de définition des équivalences
66
{ Alpha EQU Alpha }
67
        FUN     AddEqu
68
 
69
{ Alpha EQU Int }
70
        FUN     AddEqu
71
 
72
; Directive d'alignement sur adresse congrue à 4
73
{ ALIGN4 }
74
        FUN     Complete_zeros
75
 
76
; Directives d'inclusion de données dans le code
77
{ DCB Int }
78
        TMO     1
79
        MSK     _0000_0000_
80
        FUN     Dcb_Int
81
{ DCB Alpha }
82
        TMO     1
83
        MSK     _0000_0000_
84
        FUN     Dcb_Alpha
85
{ DCW Int }
86
        TMO     4
87
        MSK     _0000_0000_0000_0000__0000_0000_0000_0000_
88
        FUN     Dcw_Int
89
{ DCW Alpha }
90
        TMO     2
91
        MSK     _0000_0000_0000_0000__0000_0000_0000_0000_
92
        FUN     Dcw_Alpha
93
 
94
; Directives de positionnement de l'adresse d'implantation
95
{ ORG Int }
96
        FUN     Org_Int
97
 
98
{ ORG Alpha }
99
        FUN     Org_Label
100
 
101
; DEFINITION DES INSTRUCTIONS
102
 
103
; Instruction ADD
104
{ ADD Reg, Reg, Reg }
105
        TMO     4
106
        MSK     _000000_00000_00000_00000_00000_100000
107
        FUN     R1D
108
        FUN     R3S
109
        FUN     R5T
110
 
111
; Instruction ADDI
112
{ ADDI Reg, Reg, Int }
113
    TMO     4
114
    MSK _001000_00000_00000__00000000_00000000
115
    FUN     R1T
116
    FUN     R3S
117
    FUN     IMM5
118
{ ADDI Reg, Reg, Alpha }
119
    TMO     4
120
    MSK _001000_00000_00000__00000000_00000000
121
    FUN     R1T
122
    FUN     R3S
123
    FUN     ETIQ5
124
 
125
; Instruction ADDIU
126
{ ADDIU Reg, Reg, Int }
127
    TMO     4
128
    MSK _001001_00000_00000__00000000_00000000
129
    FUN     R1T
130
    FUN     R3S
131
    FUN     IMM5
132
 
133
; Instruction ADDU
134
{ ADDU Reg, Reg, Reg }
135
        TMO     4
136
        MSK     _000000_00000_00000_00000_00000_100001
137
        FUN     R1D
138
        FUN     R3S
139
        FUN     R5T
140
 
141
; Instruction AND
142
{ AND Reg, Reg, Reg }
143
        TMO     4
144
        MSK     _000000_00000_00000_00000_00000_100100
145
        FUN     R1D
146
        FUN     R3S
147
        FUN     R5T
148
 
149
; Instruction ANDI
150
{ ANDI Reg, Reg, Int }
151
        TMO     4
152
        MSK     _001100_00000_00000__00000000_00000000
153
        FUN     R1T
154
        FUN     R3S
155
        FUN     IMM5
156
{ ANDI Reg, Reg, Alpha }
157
        TMO     4
158
        MSK     _001100_00000_00000__00000000_00000000
159
        FUN     R1T
160
        FUN     R3S
161
        FUN     ETIQ5
162
 
163
; Instruction BEQ
164
{ BEQ Reg, Reg, Alpha }
165
        TMO     4
166
        MSK     _000100_00000_00000__0000_0000_0000_0000
167
        FUN     R1S
168
        FUN     R3T
169
        FUN     OFFSET5
170
 
171
; Instruction BGEZ
172
{ BGEZ Reg, Alpha }
173
        TMO     4
174
        MSK     _000001_00000_00001__00000000_00000000
175
        FUN     R1S
176
        FUN     OFFSET3
177
 
178
; Instruction BGEZAL
179
{ BGEZAL Reg, Alpha }
180
        TMO     4
181
        MSK     _000001_00000_10001__00000000_00000000
182
        FUN     R1S
183
        FUN     OFFSET3
184
 
185
; Instruction BGTZ
186
{ BGTZ Reg, Alpha }
187
        TMO     4
188
        MSK     _000111_00000_00000__00000000_00000000
189
        FUN     R1S
190
        FUN     OFFSET3
191
 
192
; Instruction BLEZ
193
{ BLEZ Reg, Alpha }
194
        TMO     4
195
        MSK     _000110_00000_00000__00000000_00000000
196
        FUN     R1S
197
        FUN     OFFSET3
198
 
199
; Instruction BLTZ
200
{ BLTZ Reg, Alpha }
201
        TMO     4
202
        MSK     _000001_00000_00000__00000000_00000000
203
        FUN     R1S
204
        FUN     OFFSET3
205
 
206
; Instruction BLTZAL
207
{ BLTZAL Reg, Alpha }
208
        TMO     4
209
        MSK     _000001_00000_10000__00000000_00000000
210
        FUN     R1S
211
        FUN     OFFSET3
212
 
213
; Instruction BNE
214
{ BNE Reg, Reg, Alpha }
215
        TMO     4
216
        MSK     _000101_00000_00000__00000000_00000000
217
        FUN     R1S
218
        FUN     R3T
219
        FUN     OFFSET5
220
 
221
; Instruction BREAK
222
{ BREAK }
223
        TMO     4
224
        MSK     _000000__00000_00000_00000_00000__001101
225
 
226
; Instruction COP0
227
{ COP0 Int }
228
        TMO     4
229
        MSK     _010000_00001_00000_0000_0000_0000_0000
230
    FUN IMM1
231
 
232
; Instruction J
233
{ J Alpha }
234
        TMO     4
235
        MSK     _000010__00_0000_0000_0000_0000_0000_0000
236
        FUN     ABSOLU1
237
 
238
; Instruction JAL
239
{ JAL Alpha }
240
        TMO     4
241
        MSK     _000011__00_0000_0000_0000_0000_0000_0000
242
        FUN     ABSOLU1
243
 
244
; Instruction JALR
245
{ JAL Reg, Reg }
246
        TMO     4
247
        MSK     _000000_00000_00000_00000_00000_001001
248
        FUN     R1D
249
        FUN     R3S
250
 
251
; Instruction JALR avec rd=$31 implicite
252
{ JAL Reg }
253
        TMO     4
254
        MSK     _000000_00000_00000_11111_00000_001001
255
        FUN     R1S
256
 
257
; Instruction JR
258
{ JR Reg }
259
        TMO     4
260
        MSK     _000000_00000__000_0000_0000_0000__001000
261
        FUN     R1S
262
 
263
; Instruction LUI
264
{ LUI Reg, Int }
265
    TMO 4
266
    MSK _001111_00000_00000__0000_0000_0000_0000
267
    FUN R1T
268
    FUN IMM3
269
{ LUI Reg, Alpha }
270
    TMO 4
271
    MSK _001111_00000_00000__0000_0000_0000_0000
272
    FUN R1T
273
    FUN ETIQ3
274
 
275
; Instruction LW
276
{ LW Reg, Int(Reg) }
277
        TMO     4
278
        MSK     _100011_00000_00000__0000_0000_0000_0000
279
        FUN     R1T
280
        FUN     IMM3
281
        FUN     R5S
282
 
283
; Instruction LWC0
284
{ LWC0 Reg, Int(Reg) }
285
    TMO 4
286
    MSK _110000_00000_00000__0000_0000_0000_0000
287
    FUN R1T
288
    FUN IMM3
289
    FUN R5S
290
 
291
; Instruction MFC0
292
{ MFC0 Reg, Reg }
293
    TMO 4
294
    MSK _010000_00000_00000_00000__000000_00000
295
    FUN R1D
296
    FUN R3T
297
 
298
; Instruction MFHI
299
{ MFHI Reg }
300
        TMO     4
301
        MSK     _000000_0000000000_00000_00000_010000
302
        FUN     R1D
303
 
304
; Instruction MFLO
305
{ MFLO Reg }
306
        TMO     4
307
        MSK     _000000_0000000000_00000_00000_010010
308
        FUN     R1D
309
 
310
; Instruction MTC0
311
{ MTC0 Reg, Reg }
312
    TMO 4
313
    MSK _010000_00100_00000_00000__000000_00000
314
    FUN R1T
315
    FUN R3D
316
 
317
; Instruction MTHI
318
{ MTHI Reg }
319
        TMO     4
320
        MSK     _000000_00000__0_0000_0000_0000_00__010001
321
        FUN     R1S
322
 
323
; Instruction MTLO
324
{ MTLO Reg }
325
        TMO     4
326
        MSK     _000000_00000__0_0000_0000_0000_00__010011
327
        FUN     R1S
328
 
329
; Instruction MULT
330
{ MULT Reg, Reg }
331
    TMO 4
332
    MSK _000000_00000_00000__0000_0000_00__011000
333
    FUN R1S
334
    FUN R3T
335
; Instruction MULT2
336
{ MULT2 Reg, Reg, Reg }
337
        TMO     4
338
        MSK     _000000_00000_00000_00000_00000_011100
339
        FUN     R1D
340
        FUN     R3S
341
        FUN     R5T
342
 
343
; Instruction MULTU
344
{ MULTU Reg, Reg }
345
    TMO 4
346
    MSK _000000_00000_00000__0000_0000_00__011001
347
    FUN R1S
348
    FUN R3T
349
 
350
; Instruction NOR
351
{ NOR Reg, Reg, Reg }
352
        TMO     4
353
        MSK     _000000_00000_00000_00000_00000_100111
354
        FUN     R1D
355
        FUN     R3S
356
        FUN     R5T
357
 
358
; Instruction OR
359
{ OR Reg, Reg, Reg }
360
        TMO     4
361
        MSK     _000000_00000_00000_00000_00000_100101
362
        FUN     R1D
363
        FUN     R3S
364
        FUN     R5T
365
 
366
; Instruction ORI
367
{ ORI Reg, Reg, Int }
368
    TMO     4
369
        MSK     _001101_00000_00000__00000000_00000000
370
    FUN     R1T
371
    FUN     R3S
372
    FUN     IMM5
373
{ ORI Reg, Reg, Alpha }
374
    TMO     4
375
        MSK         _001101_00000_00000__00000000_00000000
376
    FUN     R1T
377
    FUN     R3S
378
    FUN     ETIQ5
379
 
380
; Instruction SLL
381
{ SLL Reg, Reg, Int }
382
        TMO     4
383
        MSK     _000000_00000_00000_00000_00000_000000
384
        FUN     R1D
385
        FUN     R3T
386
        FUN     SA5
387
 
388
; Instruction SLLV
389
{ SLLV Reg, Reg, Reg }
390
        TMO     4
391
        MSK     _000000_00000_00000_00000_00000_000100
392
        FUN     R1D
393
        FUN     R3T
394
        FUN     R5S
395
 
396
; Instruction SLT
397
{ SLT Reg, Reg, Reg }
398
        TMO     4
399
        MSK     _000000_00000_00000_00000_00000_101010
400
        FUN     R1D
401
        FUN     R3S
402
        FUN     R5T
403
 
404
; Instruction SLTI
405
{ SLTI Reg, Reg, Int }
406
    TMO     4
407
        MSK     _001010_00000_00000__00000000_00000000
408
    FUN     R1T
409
    FUN     R3S
410
    FUN     IMM5
411
{ SLTI Reg, Reg, Alpha }
412
    TMO     4
413
        MSK     _001010_00000_00000__00000000_00000000
414
    FUN     R1T
415
    FUN     R3S
416
    FUN     ETIQ5
417
 
418
; Instruction SLTIU
419
{ SLTIU Reg, Reg, Int }
420
    TMO     4
421
    MSK     _001010_00000_00000__00000000_00000000
422
    FUN     R1T
423
    FUN     R3S
424
    FUN     IMM5
425
{ SLTIU Reg, Reg, Alpha }
426
    TMO     4
427
    MSK     _001010_00000_00000__00000000_00000000
428
    FUN     R1T
429
    FUN     R3S
430
    FUN     ETIQ5
431
 
432
; Instruction SLTU
433
{ SLTU Reg, Reg, Reg }
434
        TMO     4
435
        MSK     _000000_00000_00000_00000_00000_101011
436
        FUN     R1D
437
        FUN     R3S
438
        FUN     R5T
439
 
440
; Instruction SRA
441
{ SRA Reg, Reg, Int }
442
        TMO     4
443
        MSK     _000000_00000_00000_00000_00000_000011
444
        FUN     R1D
445
        FUN     R3T
446
        FUN     SA5
447
 
448
; Instruction SRAV
449
{ SRAV Reg, Reg, Reg }
450
        TMO     4
451
        MSK     _000000_00000_00000_00000_00000_000111
452
        FUN     R1D
453
        FUN     R3T
454
        FUN     R5S
455
 
456
; Instruction SRL
457
{ SRL Reg, Reg, Int }
458
        TMO     4
459
        MSK     _000000_00000_00000_00000_00000_000010
460
        FUN     R1D
461
        FUN     R3T
462
        FUN     SA5
463
 
464
; Instruction SRLV
465
{ SRLV Reg, Reg, Reg }
466
        TMO     4
467
        MSK     _000000_00000_00000_00000_00000_000110
468
        FUN     R1D
469
        FUN     R3T
470
        FUN     R5S
471
 
472
; Instruction SUB
473
{ SUB Reg, Reg, Reg }
474
        TMO     4
475
        MSK     _000000_00000_00000_00000_00000_100010
476
        FUN     R1D
477
        FUN     R3S
478
        FUN     R5T
479
 
480
; Instruction SUBU
481
{ SUBU Reg, Reg, Reg }
482
        TMO     4
483
        MSK     _000000_00000_00000_00000_00000_100011
484
        FUN     R1D
485
        FUN     R3S
486
        FUN     R5T
487
 
488
; Instruction SW
489
{ SW Reg, Int(Reg) }
490
        TMO     4
491
        MSK     _101011_00000_00000__0000_0000_0000_0000
492
        FUN     R1T
493
        FUN     IMM3
494
        FUN     R5S
495
 
496
; Instruction SWC0
497
{ SWC0 Reg, Int(Reg) }
498
        TMO     4
499
        MSK     _111000_00000_00000__0000_0000_0000_0000
500
        FUN     R1T
501
        FUN     IMM3
502
        FUN     R5S
503
 
504
; Instruction SYSCALL
505
{ SYSCALL }
506
        TMO     4
507
        MSK     _000000__00000_00000_00000_00000__001100
508
 
509
; Instruction XOR
510
{ XOR Reg, Reg, Reg }
511
        TMO     4
512
        MSK     _000000_00000_00000_00000_00000_100110
513
        FUN     R1D
514
        FUN     R3S
515
        FUN     R5T
516
 
517
; Instruction XORI
518
{ XORI Reg, Reg, Int }
519
    TMO     4
520
        MSK     _001110_00000_00000__00000000_00000000
521
    FUN     R1T
522
    FUN     R3S
523
    FUN     IMM5
524
{ XORI Reg, Reg, Alpha }
525
    TMO     4
526
        MSK     _001110_00000_00000__00000000_00000000
527
    FUN     R1T
528
    FUN     R3S
529
    FUN     ETIQ5

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.