Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
asm-macro-64-bit-gnu.h
Go to the documentation of this file.
1/* 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 * pseudo-mnemonics for ALU/Memory instructions for ARC64 ISA
8 */
9
10#ifndef ZEPHYR_INCLUDE_ARCH_ARC_ASM_COMPAT_ASM_MACRO_64_BIT_GNU_H_
11#define ZEPHYR_INCLUDE_ARCH_ARC_ASM_COMPAT_ASM_MACRO_64_BIT_GNU_H_
12
13.irp cc,,.hi,.nz
14.macro MOVR\cc d, s
15 movl\cc \d, \s
16.endm
17.endr
18
19.irp aa,,.ab,.as,.aw
20.macro LDR\aa d, s, off=0
21 ldl\aa \d, [\s, \off]
22.endm
23.endr
24
25.irp aa,.ab,.as,.aw
26.macro STR\aa d, s, off=0
27 ; workaround assembler barfing for ST r, [@symb, 0]
28 .if \off == 0
29 stl\aa \d, [\s]
30 .else
31 stl\aa \d, [\s, \off]
32 .endif
33.endm
34.endr
35
36.macro STR d, s, off=0
37 .if \off == 0
38 stl \d, [\s]
39 .else
40 .if \off > 255
41 STR.as \d, \s, \off / 8
42 .else
43 stl \d, [\s, \off]
44 .endif
45 .endif
46.endm
47
48.macro PUSHR r
49 pushl \r
50.endm
51
52.macro POPR r
53 popl \r
54.endm
55
56.macro LRR d, aux
57 lrl \d, \aux
58.endm
59
60.macro SRR d, aux
61 srl \d, \aux
62.endm
63
64.irp cc,,.nz
65.macro ADDR\cc d, s, v
66 addl\cc \d, \s, \v
67.endm
68.endr
69
70.irp cc,,.nz
71.macro ADD2R\cc d, s, v
72 add2l\cc \d, \s, \v
73.endm
74.endr
75
76.macro ADD3R d, s, v
77 add3l \d, \s, \v
78.endm
79
80.macro SUBR d, s, v
81 subl \d, \s, \v
82.endm
83
84.macro BMSKNR d, s, v
85 bmsknl \d, \s, \v
86.endm
87
88.macro LSRR d, s, v
89 lsrl \d, \s, \v
90.endm
91
92.macro ASLR d, s, v
93 asll \d, \s, \v
94.endm
95
96.macro ANDR d, s, v
97 andl \d, \s, \v
98.endm
99
100.macro ORR, d, s, v
101 orl \d, \s, \v
102.endm
103
104.irp cc,ne,eq
105.macro BRR\cc d, s, lbl
106 br\cc\‍()l \d, \s, \lbl
107.endm
108.endr
109
110.macro BREQR d, s, lbl
111 breql \d, \s, \lbl
112.endm
113
114.macro CMPR op1, op2
115 cmpl \op1, \op2
116.endm
117
118#endif /* ZEPHYR_INCLUDE_ARCH_ARC_ASM_COMPAT_ASM_MACRO_64_BIT_GNU_H_ */
workaround assembler barfing for ST if else st aa endif endm endr macro PUSHR r push r endm macro POPR r pop r endm macro LRR aux lr aux endm macro SRR aux sr aux endm irp nz macro ADDR cc v add cc v endm endr irp nz macro ADD2R cc v add2 cc v endm endr macro ADD3R v add3 v endm macro SUBR v sub v endm macro BMSKNR v bmskn v endm macro LSRR v lsr v endm macro ASLR v asl v endm macro ANDR v and v endm macro v or v endm irp eq macro BRR cc lbl br cc lbl endm endr macro BREQR lbl breq lbl endm macro CMPR op1
Definition asm-macro-32-bit-gnu.h:102
irp nz macro MOVR cc s mov cc s endm endr irp aw macro LDR aa s
Definition asm-macro-32-bit-gnu.h:20
irp cc
Definition asm-macro-32-bit-gnu.h:13
irp nz macro MOVR cc s mov cc s endm endr irp aa
Definition asm-macro-32-bit-gnu.h:19
workaround assembler barfing for ST if else st aa endif endm endr macro PUSHR r push r endm macro POPR r pop r endm macro LRR aux lr aux endm macro SRR aux sr aux endm irp nz macro ADDR cc v add cc v endm endr irp nz macro ADD2R cc v add2 cc v endm endr macro ADD3R v add3 v endm macro SUBR v sub v endm macro BMSKNR v bmskn v endm macro LSRR v lsr v endm macro ASLR v asl v endm macro ANDR v and v endm macro v or v endm irp ne
Definition asm-macro-32-bit-gnu.h:92
irp nz macro MOVR cc d
Definition asm-macro-32-bit-gnu.h:14
workaround assembler barfing for ST if else st aa endif endm endr macro PUSHR r push r endm macro POPR r pop r endm macro LRR aux lr aux endm macro SRR aux sr aux endm irp nz macro ADDR cc v add cc v endm endr irp nz macro ADD2R cc v add2 cc v endm endr macro ADD3R v add3 v endm macro SUBR v sub v endm macro BMSKNR v bmskn v endm macro LSRR v lsr v endm macro ASLR v asl v endm macro ANDR v and v endm macro ORR
Definition asm-macro-32-bit-gnu.h:88
irp nz macro MOVR cc s mov cc s endm endr irp aw macro LDR aa off
Definition asm-macro-32-bit-gnu.h:20
workaround assembler barfing for ST r
Definition asm-macro-32-bit-gnu.h:27
macro s mov &$suffix s endm macro off if else ld &$suffix endif endm macro off if else st &$suffix endif endm macro r push r endm macro POPR
Definition asm-macro-32-bit-mwdt.h:37
macro s mov &$suffix s endm macro off if else ld &$suffix endif endm macro off if else st &$suffix endif endm macro r push r endm macro r pop r endm macro aux lr aux endm macro aux sr aux endm macro v add &$suffix v endm macro v add2 &$suffix v endm macro v add3 v endm macro SUBR
Definition asm-macro-32-bit-mwdt.h:62
macro s mov &$suffix s endm macro off if else ld &$suffix endif endm macro STR
Definition asm-macro-32-bit-mwdt.h:24
macro s mov &$suffix s endm macro off if else ld &$suffix endif endm macro off if else st &$suffix endif endm macro r push r endm macro r pop r endm macro aux lr aux endm macro aux sr aux endm macro v add &$suffix v endm macro v add2 &$suffix v endm macro v add3 v endm macro v sub v endm macro v bmskn v endm macro v lsr v endm macro v asl v endm macro v and v endm macro v or v endm macro lbl br &$suffix lbl endm macro lbl breq lbl endm macro CMPR
Definition asm-macro-32-bit-mwdt.h:94
macro s mov &$suffix s endm macro off if else ld &$suffix endif endm macro off if else st &$suffix endif endm macro r push r endm macro r pop r endm macro aux lr aux endm macro SRR
Definition asm-macro-32-bit-mwdt.h:45
macro s mov &$suffix s endm macro off if else ld &$suffix endif endm macro off if else st &$suffix endif endm macro r push r endm macro r pop r endm macro aux lr aux endm macro aux sr aux endm macro v add &$suffix v endm macro v add2 &$suffix v endm macro v add3 v endm macro v sub v endm macro v bmskn v endm macro LSRR
Definition asm-macro-32-bit-mwdt.h:70
macro s mov &$suffix s endm macro off if else ld &$suffix endif endm macro off if else st &$suffix endif endm macro r push r endm macro r pop r endm macro aux lr aux endm macro aux sr aux endm macro v add &$suffix v endm macro v add2 &$suffix v endm macro ADD3R
Definition asm-macro-32-bit-mwdt.h:58
macro s mov &$suffix s endm macro off if else ld &$suffix endif endm macro off if else st &$suffix endif endm macro r push r endm macro r pop r endm macro aux lr aux endm macro aux sr aux endm macro v add &$suffix v endm macro v add2 &$suffix v endm macro v add3 v endm macro v sub v endm macro BMSKNR
Definition asm-macro-32-bit-mwdt.h:66
macro s mov &$suffix s endm macro off if else ld &$suffix endif endm macro off if else st &$suffix endif endm macro PUSHR
Definition asm-macro-32-bit-mwdt.h:33
macro s mov &$suffix s endm macro off if else ld &$suffix endif endm macro off if else st &$suffix endif endm macro r push r endm macro r pop r endm macro aux lr aux endm macro aux sr aux endm macro v add &$suffix v endm macro v add2 &$suffix v endm macro v add3 v endm macro v sub v endm macro v bmskn v endm macro v lsr v endm macro ASLR
Definition asm-macro-32-bit-mwdt.h:74
macro s mov &$suffix s endm macro off if else ld &$suffix endif endm macro off if else st &$suffix endif endm macro r push r endm macro r pop r endm macro aux lr aux endm macro aux sr aux endm macro v add &$suffix v endm macro v add2 &$suffix v endm macro v add3 v endm macro v sub v endm macro v bmskn v endm macro v lsr v endm macro v asl v endm macro v and v endm macro v or v endm macro lbl br &$suffix lbl endm macro BREQR
Definition asm-macro-32-bit-mwdt.h:90
macro s mov &$suffix s endm macro off if else ld &$suffix endif endm macro off if else st &$suffix endif endm macro r push r endm macro r pop r endm macro aux lr aux endm macro aux sr aux endm macro v add &$suffix v endm macro v add2 &$suffix v endm macro v add3 v endm macro v sub v endm macro v bmskn v endm macro v lsr v endm macro v asl v endm macro ANDR
Definition asm-macro-32-bit-mwdt.h:78
macro s mov &$suffix s endm macro off if else ld &$suffix endif endm macro off if else st &$suffix endif endm macro r push r endm macro r pop r endm macro LRR
Definition asm-macro-32-bit-mwdt.h:41