genptr.c (1dcdc92c72af5311666df64f5f04d6600af262ed) | genptr.c (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 * --- 537 unchanged lines hidden (view full) --- 546 for (int i = 0; i < sizeof(MMVector) / 8; i++) { 547 tcg_gen_qemu_ld64(tmp, src, ctx->mem_idx); 548 tcg_gen_addi_tl(src, src, 8); 549 tcg_gen_st_i64(tmp, cpu_env, dstoff + i * 8); 550 } 551 tcg_temp_free_i64(tmp); 552} 553 | 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 * --- 537 unchanged lines hidden (view full) --- 546 for (int i = 0; i < sizeof(MMVector) / 8; i++) { 547 tcg_gen_qemu_ld64(tmp, src, ctx->mem_idx); 548 tcg_gen_addi_tl(src, src, 8); 549 tcg_gen_st_i64(tmp, cpu_env, dstoff + i * 8); 550 } 551 tcg_temp_free_i64(tmp); 552} 553 |
554static void gen_vreg_store(DisasContext *ctx, Insn *insn, Packet *pkt, 555 TCGv EA, intptr_t srcoff, int slot, bool aligned) | 554static void gen_vreg_store(DisasContext *ctx, TCGv EA, intptr_t srcoff, 555 int slot, bool aligned) |
556{ 557 intptr_t dstoff = offsetof(CPUHexagonState, vstore[slot].data); 558 intptr_t maskoff = offsetof(CPUHexagonState, vstore[slot].mask); 559 | 556{ 557 intptr_t dstoff = offsetof(CPUHexagonState, vstore[slot].data); 558 intptr_t maskoff = offsetof(CPUHexagonState, vstore[slot].mask); 559 |
560 if (is_gather_store_insn(insn, pkt)) { | 560 if (is_gather_store_insn(ctx)) { |
561 TCGv sl = tcg_constant_tl(slot); 562 gen_helper_gather_store(cpu_env, EA, sl); 563 return; 564 } 565 566 tcg_gen_movi_tl(hex_vstore_pending[slot], 1); 567 if (aligned) { 568 tcg_gen_andi_tl(hex_vstore_addr[slot], EA, --- 69 unchanged lines hidden --- | 561 TCGv sl = tcg_constant_tl(slot); 562 gen_helper_gather_store(cpu_env, EA, sl); 563 return; 564 } 565 566 tcg_gen_movi_tl(hex_vstore_pending[slot], 1); 567 if (aligned) { 568 tcg_gen_andi_tl(hex_vstore_addr[slot], EA, --- 69 unchanged lines hidden --- |