Line data Source code
1 0 : /* SPDX-License-Identifier: Apache-2.0 */
2 : /*
3 : * Copyright (C) 2021 Synopsys, Inc. (www.synopsys.com)
4 : *
5 : * Author: Vineet Gupta <vgupta@synopsys.com>
6 : *
7 : * ALU/Memory instructions pseudo-mnemonics for ARCv2 and ARC32 ISA
8 : */
9 :
10 0 : .irp cc,,.hi,.nz
11 0 : .macro MOVR\cc d, s
12 : mov\cc \d, \s
13 : .endm
14 : .endr
15 :
16 0 : .irp aa,,.ab,.as,.aw
17 0 : .macro LDR\aa d, s, off=0
18 : ld\aa \d, [\s, \off]
19 : .endm
20 : .endr
21 :
22 : .irp aa,,.ab,.as,.aw
23 : .macro STR\aa d, s, off=0
24 0 : ; workaround assembler barfing for ST r, [@symb, 0]
25 : .if \off == 0
26 : st\aa \d, [\s]
27 : .else
28 : st\aa \d, [\s, \off]
29 : .endif
30 : .endm
31 : .endr
32 :
33 : .macro PUSHR r
34 : push \r
35 : .endm
36 :
37 : .macro POPR r
38 : pop \r
39 : .endm
40 :
41 : .macro LRR d, aux
42 : lr \d, \aux
43 : .endm
44 :
45 : .macro SRR d, aux
46 : sr \d, \aux
47 : .endm
48 :
49 : .irp cc,,.nz
50 : .macro ADDR\cc d, s, v
51 : add\cc \d, \s, \v
52 : .endm
53 : .endr
54 :
55 : .irp cc,,.nz
56 : .macro ADD2R\cc d, s, v
57 : add2\cc \d, \s, \v
58 : .endm
59 : .endr
60 :
61 : .macro ADD3R d, s, v
62 : add3 \d, \s, \v
63 : .endm
64 :
65 : .macro SUBR d, s, v
66 : sub \d, \s, \v
67 : .endm
68 :
69 : .macro BMSKNR d, s, v
70 : bmskn \d, \s, \v
71 : .endm
72 :
73 : .macro LSRR d, s, v
74 : lsr \d, \s, \v
75 : .endm
76 :
77 : .macro ASLR d, s, v
78 : asl \d, \s, \v
79 : .endm
80 :
81 : .macro ANDR d, s, v
82 : and \d, \s, \v
83 : .endm
84 :
85 0 : .macro ORR, d, s, v
86 : or \d, \s, \v
87 : .endm
88 :
89 0 : .irp cc,ne,eq
90 : .macro BRR\cc d, s, lbl
91 : br\cc \d, \s, \lbl
92 : .endm
93 : .endr
94 :
95 : .macro BREQR d, s, lbl
96 : breq \d, \s, \lbl
97 : .endm
98 :
99 0 : .macro CMPR op1, op2
100 : cmp \op1, \op2
101 : .endm
|