xref: /aosp_15_r20/external/mesa3d/src/etnaviv/isa/encode.c (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 Worker #include "asm.h"
7*61046927SAndroid Build Coastguard Worker #include "isa.h"
8*61046927SAndroid Build Coastguard Worker 
9*61046927SAndroid Build Coastguard Worker struct encode_state {
10*61046927SAndroid Build Coastguard Worker };
11*61046927SAndroid Build Coastguard Worker 
12*61046927SAndroid Build Coastguard Worker static inline enum isa_opc
__instruction_case(struct encode_state * s,const struct etna_inst * instr)13*61046927SAndroid Build Coastguard Worker __instruction_case(struct encode_state *s, const struct etna_inst *instr)
14*61046927SAndroid Build Coastguard Worker {
15*61046927SAndroid Build Coastguard Worker    return instr->opcode;
16*61046927SAndroid Build Coastguard Worker }
17*61046927SAndroid Build Coastguard Worker 
18*61046927SAndroid Build Coastguard Worker #include "encode.h"
19*61046927SAndroid Build Coastguard Worker 
isa_assemble_instruction(uint32_t * out,const struct etna_inst * instr)20*61046927SAndroid Build Coastguard Worker void isa_assemble_instruction(uint32_t *out, const struct etna_inst *instr)
21*61046927SAndroid Build Coastguard Worker {
22*61046927SAndroid Build Coastguard Worker    bitmask_t encoded = encode__instruction(NULL, NULL, instr);
23*61046927SAndroid Build Coastguard Worker 
24*61046927SAndroid Build Coastguard Worker    store_instruction(out, encoded);
25*61046927SAndroid Build Coastguard Worker }
26