Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
asm-macro-32-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 * ALU/Memory instructions pseudo-mnemonics for ARCv2 and ARC32 ISA
8 */
9
10#ifndef ZEPHYR_INCLUDE_ARCH_ARC_ASM_COMPAT_ASM_MACRO_32_BIT_GNU_H_
11#define ZEPHYR_INCLUDE_ARCH_ARC_ASM_COMPAT_ASM_MACRO_32_BIT_GNU_H_
12
13.irp cc,,.hi,.nz
14.macro MOVR\cc d, s
15 mov\cc \d, \s
16.endm
17.endr
18
19.irp aa,,.ab,.as,.aw
20.macro LDR\aa d, s, off=0
21 ld\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 st\aa \d, [\s]
30 .else
31 st\aa \d, [\s, \off]
32 .endif
33.endm
34.endr
35
36.macro PUSHR r
37 push \r
38.endm
39
40.macro POPR r
41 pop \r
42.endm
43
44.macro LRR d, aux
45 lr \d, \aux
46.endm
47
48.macro SRR d, aux
49 sr \d, \aux
50.endm
51
52.irp cc,,.nz
53.macro ADDR\cc d, s, v
54 add\cc \d, \s, \v
55.endm
56.endr
57
58.irp cc,,.nz
59.macro ADD2R\cc d, s, v
60 add2\cc \d, \s, \v
61.endm
62.endr
63
64.macro ADD3R d, s, v
65 add3 \d, \s, \v
66.endm
67
68.macro SUBR d, s, v
69 sub \d, \s, \v
70.endm
71
72.macro BMSKNR d, s, v
73 bmskn \d, \s, \v
74.endm
75
76.macro LSRR d, s, v
77 lsr \d, \s, \v
78.endm
79
80.macro ASLR d, s, v
81 asl \d, \s, \v
82.endm
83
84.macro ANDR d, s, v
85 and \d, \s, \v
86.endm
87
88.macro ORR, d, s, v
89 or \d, \s, \v
90.endm
91
92.irp cc,ne,eq
93.macro BRR\cc d, s, lbl
94 br\cc \d, \s, \lbl
95.endm
96.endr
97
98.macro BREQR d, s, lbl
99 breq \d, \s, \lbl
100.endm
101
102.macro CMPR op1, op2
103 cmp \op1, \op2
104.endm
105
106#endif /* ZEPHYR_INCLUDE_ARCH_ARC_ASM_COMPAT_ASM_MACRO_32_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 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