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

Subversion Repositories minimips

[/] [minimips/] [trunk/] [gasm/] [psd_instr.sx] - Blame information for rev 14

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 poppy
; 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
; Ce fichier contient les d‰finitions des macros du langage.
12
; Il s'agit des pseudo-instructions ainsi que des ‰quivalences de base.
13
 
14
; Il est € noter que les instructions ‰ventuelles ne seront pas trait‰es
15
; seules les directives de pr‰processeur sont prises en compte.
16
 
17
;================================= Surnoms des registres ==================================
18
 
19
#D $ZERO    {} {} { $0 }
20
 
21
#D $AT      {} {} { $1 }
22
 
23
#D $V0      {} {} { $2 }
24
#D $V1      {} {} { $3 }
25
 
26
#D $A0      {} {} { $4 }
27
#D $A1      {} {} { $5 }
28
#D $A2      {} {} { $6 }
29
#D $A3      {} {} { $7 }
30
 
31
#D $T0      {} {} { $8 }
32
#D $T1      {} {} { $9 }
33
#D $T2      {} {} { $10 }
34
#D $T3      {} {} { $11 }
35
#D $T4      {} {} { $12 }
36
#D $T5      {} {} { $13 }
37
#D $T6      {} {} { $14 }
38
#D $T7      {} {} { $15 }
39
 
40
#D $S1      {} {} { $16 }
41
#D $S2      {} {} { $17 }
42
#D $S3      {} {} { $18 }
43
#D $S4      {} {} { $19 }
44
#D $S5      {} {} { $20 }
45
#D $S6      {} {} { $21 }
46
#D $S7      {} {} { $22 }
47
#D $S8      {} {} { $23 }
48
 
49
#D $T8      {} {} { $24 }
50
#D $T9      {} {} { $25 }
51
 
52
#D $K0      {} {} { $26 }
53
#D $K1      {} {} { $27 }
54
 
55
#D $GP      {} {} { $28 }
56
 
57
#D $SP      {} {} { $29 }
58
 
59
#D $FP      {} {} { $30 }
60
 
61
#D $RA      {} {} { $31 }
62
 
63
; Registres internes du coprocesseur systeme
64
 
65
#D STATUS   {} {} { $12 }
66
#D CAUSE    {} {} { $13 }
67
#D EPC      {} {} { $14 }
68
#D VECTIT   {} {} { $15 }
69
 
70
 
71
;============= Fonctions du coprocesseur systeme pour l'instruction COP0 ================
72
 
73
#D MASK     {}      {}      { 1 }
74
#D UNMASK   {}      {}      { 2 }
75
#D ITRET    {}      {}      { 4 } ; Retour d'interruption
76
 
77
 
78
;================================== Pseudo-instructions ===================================
79
 
80
#D NOP      {}      {}          { SLL $0, $0, 0 }
81
 
82
#D BLT      {r o a} {r, o, a}   { SLT $1,r, o           ;/ Justifie le registre at ($1)
83
                                  BNE $1, $0, a }       ;/ reserve par l'assembleur.
84
 
85
#D MOVE     { Rt Rs }  {Rt, Rs} { ADDU Rt, $0, Rs}      ;/ addition 'unsigned' avec zero
86
#D LI       { Rt Int } {Rt, Int}{ ORI  Rt, $ZERO, Int}  ;/ Chargement de valeur immediate
87
 
88
#D INC      { R }   { R }   { ADDI R, R, 1 }
89
#D DEC      { R }   { R }   { ADDI R, R, -1 }
90
#D INCW     { R }   { R }   { ADDI R, R, 4 }
91
#D DECW     { R }   { R }   { ADDI R, R, -4 }
92
#D STOP     { etq } { etq } { etq: J etq }
93
#D RETURN   {}      {}      { JR $31 }
94
#D RIT      {}      {}      { COP0 ITRET }
95
 
96
#D LOCK     {}      {}      { LI $K0, @FFFF LW $ZERO, 0($K0) }   ;/ plantage du processeur
97
 
98
; Utilisation d'une pile
99
 
100
#D INIT_SP  { adresse } { adresse } { ADDI $SP, $0, adresse }
101
#D PUSH     { reg }     { reg }     { DECW $SP SW reg, 0($SP) }
102
#D PULL     { reg }     { reg }     { LW reg, 0($SP) INCW $SP }
103
 
104
#D FOR          { boucle reg max }
105
                { reg from max downto 0 DO boucle }
106
                { boucle: LI reg, max }
107
#D NEXT         { reg boucle }
108
                { reg, boucle }
109
                { DEC reg BGEZ reg, boucle }
110
 

powered by: WebSVN 2.1.0

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