xref: /qemu/tcg/loongarch64/tcg-target.h (revision 40efe733e10cc00e4fb4f9f5790a28e744e63c62)
16cb14e4dSWANG Xuerui /*
26cb14e4dSWANG Xuerui  * Tiny Code Generator for QEMU
36cb14e4dSWANG Xuerui  *
46cb14e4dSWANG Xuerui  * Copyright (c) 2021 WANG Xuerui <git@xen0n.name>
56cb14e4dSWANG Xuerui  *
66cb14e4dSWANG Xuerui  * Based on tcg/riscv/tcg-target.h
76cb14e4dSWANG Xuerui  *
86cb14e4dSWANG Xuerui  * Copyright (c) 2018 SiFive, Inc
96cb14e4dSWANG Xuerui  *
106cb14e4dSWANG Xuerui  * Permission is hereby granted, free of charge, to any person obtaining a copy
116cb14e4dSWANG Xuerui  * of this software and associated documentation files (the "Software"), to deal
126cb14e4dSWANG Xuerui  * in the Software without restriction, including without limitation the rights
136cb14e4dSWANG Xuerui  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
146cb14e4dSWANG Xuerui  * copies of the Software, and to permit persons to whom the Software is
156cb14e4dSWANG Xuerui  * furnished to do so, subject to the following conditions:
166cb14e4dSWANG Xuerui  *
176cb14e4dSWANG Xuerui  * The above copyright notice and this permission notice shall be included in
186cb14e4dSWANG Xuerui  * all copies or substantial portions of the Software.
196cb14e4dSWANG Xuerui  *
206cb14e4dSWANG Xuerui  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
216cb14e4dSWANG Xuerui  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
226cb14e4dSWANG Xuerui  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
236cb14e4dSWANG Xuerui  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
246cb14e4dSWANG Xuerui  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
256cb14e4dSWANG Xuerui  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
266cb14e4dSWANG Xuerui  * THE SOFTWARE.
276cb14e4dSWANG Xuerui  */
286cb14e4dSWANG Xuerui 
296cb14e4dSWANG Xuerui #ifndef LOONGARCH_TCG_TARGET_H
306cb14e4dSWANG Xuerui #define LOONGARCH_TCG_TARGET_H
316cb14e4dSWANG Xuerui 
326cb14e4dSWANG Xuerui #define TCG_TARGET_INSN_UNIT_SIZE 4
3316288dedSJiajie Chen #define TCG_TARGET_NB_REGS 64
34709bcd7dSRichard Henderson 
35709bcd7dSRichard Henderson #define MAX_CODE_GEN_BUFFER_SIZE  ((size_t)-1)
366cb14e4dSWANG Xuerui 
376cb14e4dSWANG Xuerui typedef enum {
386cb14e4dSWANG Xuerui     TCG_REG_ZERO,
396cb14e4dSWANG Xuerui     TCG_REG_RA,
406cb14e4dSWANG Xuerui     TCG_REG_TP,
416cb14e4dSWANG Xuerui     TCG_REG_SP,
426cb14e4dSWANG Xuerui     TCG_REG_A0,
436cb14e4dSWANG Xuerui     TCG_REG_A1,
446cb14e4dSWANG Xuerui     TCG_REG_A2,
456cb14e4dSWANG Xuerui     TCG_REG_A3,
466cb14e4dSWANG Xuerui     TCG_REG_A4,
476cb14e4dSWANG Xuerui     TCG_REG_A5,
486cb14e4dSWANG Xuerui     TCG_REG_A6,
496cb14e4dSWANG Xuerui     TCG_REG_A7,
506cb14e4dSWANG Xuerui     TCG_REG_T0,
516cb14e4dSWANG Xuerui     TCG_REG_T1,
526cb14e4dSWANG Xuerui     TCG_REG_T2,
536cb14e4dSWANG Xuerui     TCG_REG_T3,
546cb14e4dSWANG Xuerui     TCG_REG_T4,
556cb14e4dSWANG Xuerui     TCG_REG_T5,
566cb14e4dSWANG Xuerui     TCG_REG_T6,
576cb14e4dSWANG Xuerui     TCG_REG_T7,
586cb14e4dSWANG Xuerui     TCG_REG_T8,
596cb14e4dSWANG Xuerui     TCG_REG_RESERVED,
606cb14e4dSWANG Xuerui     TCG_REG_S9,
616cb14e4dSWANG Xuerui     TCG_REG_S0,
626cb14e4dSWANG Xuerui     TCG_REG_S1,
636cb14e4dSWANG Xuerui     TCG_REG_S2,
646cb14e4dSWANG Xuerui     TCG_REG_S3,
656cb14e4dSWANG Xuerui     TCG_REG_S4,
666cb14e4dSWANG Xuerui     TCG_REG_S5,
676cb14e4dSWANG Xuerui     TCG_REG_S6,
686cb14e4dSWANG Xuerui     TCG_REG_S7,
696cb14e4dSWANG Xuerui     TCG_REG_S8,
706cb14e4dSWANG Xuerui 
7116288dedSJiajie Chen     TCG_REG_V0 = 32, TCG_REG_V1, TCG_REG_V2, TCG_REG_V3,
7216288dedSJiajie Chen     TCG_REG_V4, TCG_REG_V5, TCG_REG_V6, TCG_REG_V7,
7316288dedSJiajie Chen     TCG_REG_V8, TCG_REG_V9, TCG_REG_V10, TCG_REG_V11,
7416288dedSJiajie Chen     TCG_REG_V12, TCG_REG_V13, TCG_REG_V14, TCG_REG_V15,
7516288dedSJiajie Chen     TCG_REG_V16, TCG_REG_V17, TCG_REG_V18, TCG_REG_V19,
7616288dedSJiajie Chen     TCG_REG_V20, TCG_REG_V21, TCG_REG_V22, TCG_REG_V23,
7716288dedSJiajie Chen     TCG_REG_V24, TCG_REG_V25, TCG_REG_V26, TCG_REG_V27,
7816288dedSJiajie Chen     TCG_REG_V28, TCG_REG_V29, TCG_REG_V30, TCG_REG_V31,
7916288dedSJiajie Chen 
806cb14e4dSWANG Xuerui     /* aliases */
816cb14e4dSWANG Xuerui     TCG_AREG0    = TCG_REG_S0,
826cb14e4dSWANG Xuerui     TCG_REG_TMP0 = TCG_REG_T8,
836cb14e4dSWANG Xuerui     TCG_REG_TMP1 = TCG_REG_T7,
846cb14e4dSWANG Xuerui     TCG_REG_TMP2 = TCG_REG_T6,
8516288dedSJiajie Chen     TCG_VEC_TMP0 = TCG_REG_V23,
866cb14e4dSWANG Xuerui } TCGReg;
876cb14e4dSWANG Xuerui 
88*6b8abd24SRichard Henderson #define TCG_REG_ZERO  TCG_REG_ZERO
89*6b8abd24SRichard Henderson 
906cb14e4dSWANG Xuerui #endif /* LOONGARCH_TCG_TARGET_H */
91