blob: 15f5c7e4aaa7e142678728dba290599ba242c045 [file] [log] [blame]
/* SPDX-License-Identifier: Apache-2.0 */
/*
* Copyright (C) 2021 Synopsys, Inc. (www.synopsys.com)
*
* Author: Vineet Gupta <vgupta@synopsys.com>
*
* ALU/Memory instructions pseudo-mnemonics for ARCv2 and ARC32 ISA
*/
.irp cc,,.hi,.nz
.macro MOVR\cc d, s
mov\cc \d, \s
.endm
.endr
.irp aa,,.ab,.as,.aw
.macro LDR\aa d, s, off=0
ld\aa \d, [\s, \off]
.endm
.endr
.irp aa,,.ab,.as,.aw
.macro STR\aa d, s, off=0
; workaround assembler barfing for ST r, [@symb, 0]
.if \off == 0
st\aa \d, [\s]
.else
st\aa \d, [\s, \off]
.endif
.endm
.endr
.macro PUSHR r
push \r
.endm
.macro POPR r
pop \r
.endm
.macro LRR d, aux
lr \d, \aux
.endm
.macro SRR d, aux
sr \d, \aux
.endm
.irp cc,,.nz
.macro ADDR\cc d, s, v
add\cc \d, \s, \v
.endm
.endr
.irp cc,,.nz
.macro ADD2R\cc d, s, v
add2\cc \d, \s, \v
.endm
.endr
.macro ADD3R d, s, v
add3 \d, \s, \v
.endm
.macro SUBR d, s, v
sub \d, \s, \v
.endm
.macro BMSKNR d, s, v
bmskn \d, \s, \v
.endm
.macro LSRR d, s, v
lsr \d, \s, \v
.endm
.macro ASLR d, s, v
asl \d, \s, \v
.endm
.macro ANDR d, s, v
and \d, \s, \v
.endm
.macro ORR, d, s, v
or \d, \s, \v
.endm
.irp cc,ne,eq
.macro BRR\cc d, s, lbl
br\cc \d, \s, \lbl
.endm
.endr
.macro BREQR d, s, lbl
breq \d, \s, \lbl
.endm
.macro CMPR op1, op2
cmp \op1, \op2
.endm