xref: /aosp_15_r20/external/mesa3d/src/etnaviv/isa/static_rules.pest (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker/*
2*61046927SAndroid Build Coastguard Worker * Copyright © 2024 Igalia S.L.
3*61046927SAndroid Build Coastguard Worker * SPDX-License-Identifier: MIT
4*61046927SAndroid Build Coastguard Worker */
5*61046927SAndroid Build Coastguard Worker
6*61046927SAndroid Build Coastguard WorkerWHITESPACE = _{ " " | "\t" }
7*61046927SAndroid Build Coastguard WorkerCOMMENT = _{ ";" ~ (!NEWLINE ~ ANY)* ~ NEWLINE? }
8*61046927SAndroid Build Coastguard Worker
9*61046927SAndroid Build Coastguard WorkerDst_full = { ".hp" }
10*61046927SAndroid Build Coastguard WorkerSat = { ".sat" }
11*61046927SAndroid Build Coastguard WorkerSkphp = { ".skpHp" }
12*61046927SAndroid Build Coastguard WorkerPmode = { ".pack" }
13*61046927SAndroid Build Coastguard WorkerDenorm = { ".denorm" }
14*61046927SAndroid Build Coastguard WorkerLocal = { ".local" }
15*61046927SAndroid Build Coastguard Worker
16*61046927SAndroid Build Coastguard WorkerAmount = { ASCII_DIGIT* }
17*61046927SAndroid Build Coastguard WorkerLeft_shift = { ".ls" ~ Amount }
18*61046927SAndroid Build Coastguard Worker
19*61046927SAndroid Build Coastguard WorkerSrcVoid = { "void" }
20*61046927SAndroid Build Coastguard WorkerDestVoid = { "void" }
21*61046927SAndroid Build Coastguard WorkerNegate = { "-" }
22*61046927SAndroid Build Coastguard WorkerAbsolute = { "|" }
23*61046927SAndroid Build Coastguard Worker
24*61046927SAndroid Build Coastguard WorkerImmediate_Minus_Nan = @{ Negate ~ "nan" }
25*61046927SAndroid Build Coastguard WorkerImmediate_float = @{ Negate? ~ ASCII_DIGIT* ~ "." ~ ASCII_DIGIT* }
26*61046927SAndroid Build Coastguard WorkerImmediate_int = @{ Negate ~ ASCII_DIGIT* }
27*61046927SAndroid Build Coastguard WorkerImmediate_uint = @{ ASCII_DIGIT* }
28*61046927SAndroid Build Coastguard WorkerImmediate = _{ Immediate_Minus_Nan | Immediate_float | Immediate_int | Immediate_uint }
29*61046927SAndroid Build Coastguard Worker
30*61046927SAndroid Build Coastguard WorkerRegister = { ASCII_DIGIT* }
31*61046927SAndroid Build Coastguard WorkerDstRegister = ${ "t" ~ Register ~ RegAddressingMode? ~ Wrmask? }
32*61046927SAndroid Build Coastguard WorkerDstMemAddr = ${ "mem" ~ Wrmask? }
33*61046927SAndroid Build Coastguard WorkerSrcSwizzle = ${ "." ~ Swiz ~ Swiz ~ Swiz ~ Swiz }
34*61046927SAndroid Build Coastguard WorkerSrcRegister = ${
35*61046927SAndroid Build Coastguard Worker    ( Negate? ~ Absolute ~ RegGroup ~ Register ~ RegAddressingMode? ~ SrcSwizzle? ~ Absolute |
36*61046927SAndroid Build Coastguard Worker      Negate? ~ RegGroup ~ Register ~ RegAddressingMode? ~ SrcSwizzle? |
37*61046927SAndroid Build Coastguard Worker      Immediate )
38*61046927SAndroid Build Coastguard Worker    }
39*61046927SAndroid Build Coastguard Worker
40*61046927SAndroid Build Coastguard WorkerDest = _{ DstRegister }
41*61046927SAndroid Build Coastguard WorkerSrc = _{ SrcRegister }
42*61046927SAndroid Build Coastguard WorkerTexSrc = ${ "tex" ~ Register ~ SrcSwizzle }
43*61046927SAndroid Build Coastguard WorkerTarget = { ASCII_DIGIT* }
44