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