2 * Copyright(c) 2019-2021 Qualcomm Innovation Center, Inc. All Rights Reserved.
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.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, see <http://www.gnu.org/licenses/>.
18 #ifndef HEXAGON_GENPTR_H
19 #define HEXAGON_GENPTR_H
23 #include "translate.h"
25 extern const SemanticInsn opcode_genptr
[];
27 void gen_store32(TCGv vaddr
, TCGv src
, int width
, uint32_t slot
);
28 void gen_store1(TCGv_env cpu_env
, TCGv vaddr
, TCGv src
, uint32_t slot
);
29 void gen_store2(TCGv_env cpu_env
, TCGv vaddr
, TCGv src
, uint32_t slot
);
30 void gen_store4(TCGv_env cpu_env
, TCGv vaddr
, TCGv src
, uint32_t slot
);
31 void gen_store8(TCGv_env cpu_env
, TCGv vaddr
, TCGv_i64 src
, uint32_t slot
);
32 void gen_store1i(TCGv_env cpu_env
, TCGv vaddr
, int32_t src
, uint32_t slot
);
33 void gen_store2i(TCGv_env cpu_env
, TCGv vaddr
, int32_t src
, uint32_t slot
);
34 void gen_store4i(TCGv_env cpu_env
, TCGv vaddr
, int32_t src
, uint32_t slot
);
35 void gen_store8i(TCGv_env cpu_env
, TCGv vaddr
, int64_t src
, uint32_t slot
);
36 TCGv
gen_read_preg(TCGv pred
, uint8_t num
);
37 void gen_log_reg_write(int rnum
, TCGv val
);
38 void gen_log_pred_write(DisasContext
*ctx
, int pnum
, TCGv val
);
39 TCGv
gen_8bitsof(TCGv result
, TCGv value
);
40 void gen_set_byte_i64(int N
, TCGv_i64 result
, TCGv src
);
41 TCGv
gen_get_byte(TCGv result
, int N
, TCGv src
, bool sign
);
42 TCGv
gen_get_byte_i64(TCGv result
, int N
, TCGv_i64 src
, bool sign
);
43 TCGv
gen_get_half(TCGv result
, int N
, TCGv src
, bool sign
);
44 void gen_set_half(int N
, TCGv result
, TCGv src
);
45 void gen_set_half_i64(int N
, TCGv_i64 result
, TCGv src
);
46 void probe_noshuf_load(TCGv va
, int s
, int mi
);