macros.h (15df33ceb73cb6bb3c6736cf4d2cff51129ed4b4) | macros.h (1e536334ccb0a1606f814a38a4996b3b818e9fab) |
---|---|
1/* 2 * Copyright(c) 2019-2022 Qualcomm Innovation Center, Inc. All Rights Reserved. 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or 7 * (at your option) any later version. 8 * --- 274 unchanged lines hidden (view full) --- 283#ifdef QEMU_GENERATE 284#define fLOADMMV(EA, DST) gen_vreg_load(ctx, DST##_off, EA, true) 285#endif 286#ifdef QEMU_GENERATE 287#define fLOADMMVU(EA, DST) gen_vreg_load(ctx, DST##_off, EA, false) 288#endif 289#ifdef QEMU_GENERATE 290#define fSTOREMMV(EA, SRC) \ | 1/* 2 * Copyright(c) 2019-2022 Qualcomm Innovation Center, Inc. All Rights Reserved. 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or 7 * (at your option) any later version. 8 * --- 274 unchanged lines hidden (view full) --- 283#ifdef QEMU_GENERATE 284#define fLOADMMV(EA, DST) gen_vreg_load(ctx, DST##_off, EA, true) 285#endif 286#ifdef QEMU_GENERATE 287#define fLOADMMVU(EA, DST) gen_vreg_load(ctx, DST##_off, EA, false) 288#endif 289#ifdef QEMU_GENERATE 290#define fSTOREMMV(EA, SRC) \ |
291 gen_vreg_store(ctx, insn, pkt, EA, SRC##_off, insn->slot, true) | 291 gen_vreg_store(ctx, EA, SRC##_off, insn->slot, true) |
292#endif 293#ifdef QEMU_GENERATE 294#define fSTOREMMVQ(EA, SRC, MASK) \ 295 gen_vreg_masked_store(ctx, EA, SRC##_off, MASK##_off, insn->slot, false) 296#endif 297#ifdef QEMU_GENERATE 298#define fSTOREMMVNQ(EA, SRC, MASK) \ 299 gen_vreg_masked_store(ctx, EA, SRC##_off, MASK##_off, insn->slot, true) 300#endif 301#ifdef QEMU_GENERATE 302#define fSTOREMMVU(EA, SRC) \ | 292#endif 293#ifdef QEMU_GENERATE 294#define fSTOREMMVQ(EA, SRC, MASK) \ 295 gen_vreg_masked_store(ctx, EA, SRC##_off, MASK##_off, insn->slot, false) 296#endif 297#ifdef QEMU_GENERATE 298#define fSTOREMMVNQ(EA, SRC, MASK) \ 299 gen_vreg_masked_store(ctx, EA, SRC##_off, MASK##_off, insn->slot, true) 300#endif 301#ifdef QEMU_GENERATE 302#define fSTOREMMVU(EA, SRC) \ |
303 gen_vreg_store(ctx, insn, pkt, EA, SRC##_off, insn->slot, false) | 303 gen_vreg_store(ctx, EA, SRC##_off, insn->slot, false) |
304#endif 305#define fVFOREACH(WIDTH, VAR) for (VAR = 0; VAR < fVELEM(WIDTH); VAR++) 306#define fVARRAY_ELEMENT_ACCESS(ARRAY, TYPE, INDEX) \ 307 ARRAY.v[(INDEX) / (fVECSIZE() / (sizeof(ARRAY.TYPE[0])))].TYPE[(INDEX) % \ 308 (fVECSIZE() / (sizeof(ARRAY.TYPE[0])))] 309 310#define fVSATDW(U, V) fVSATW(((((long long)U) << 32) | fZXTN(32, 64, V))) 311#define fVASL_SATHI(U, V) fVSATW(((U) << 1) | ((V) >> 31)) --- 39 unchanged lines hidden --- | 304#endif 305#define fVFOREACH(WIDTH, VAR) for (VAR = 0; VAR < fVELEM(WIDTH); VAR++) 306#define fVARRAY_ELEMENT_ACCESS(ARRAY, TYPE, INDEX) \ 307 ARRAY.v[(INDEX) / (fVECSIZE() / (sizeof(ARRAY.TYPE[0])))].TYPE[(INDEX) % \ 308 (fVECSIZE() / (sizeof(ARRAY.TYPE[0])))] 309 310#define fVSATDW(U, V) fVSATW(((((long long)U) << 32) | fZXTN(32, 64, V))) 311#define fVASL_SATHI(U, V) fVSATW(((U) << 1) | ((V) >> 31)) --- 39 unchanged lines hidden --- |