i#1551 port to ARM: varying operand position support
Adds an additional argument to instr_create_Ndst_Msrc_vardst(),
and instr_create_Ndst_Msrc_varsrc() indicating at what position the varying
list of operands should be inserted, supporting more than just having them
at the end.
git-svn-id: https://dynamorio.googlecode.com/svn/trunk@3023 49cc7528-f6fd-11dd-9d1a-b59b2e1864b6
diff --git a/api/docs/release.dox b/api/docs/release.dox
index f0ad3ba..1d3b87c 100644
--- a/api/docs/release.dox
+++ b/api/docs/release.dox
@@ -175,7 +175,9 @@
- Added opnd_create_reg_ex() and opnd_get_flags().
- Added opnd_create_base_disp_arm().
- Added reg_is_simd().
- - Added instr_create_1dst_4src().
+ - Added instr_create_0dst_4src(), instr_create_1dst_4src(),
+ instr_create_2dst_5src(), instr_create_Ndst_Msrc_vardst(),
+ and instr_create_Ndst_Msrc_varsrc().
**************************************************
<hr>
diff --git a/core/arch/arm/instr_create.h b/core/arch/arm/instr_create.h
index 7fdebd7..c26dbeb 100644
--- a/core/arch/arm/instr_create.h
+++ b/core/arch/arm/instr_create.h
@@ -1846,75 +1846,75 @@
* \param ... The register list as separate opnd_t arguments.
*/
#define INSTR_CREATE_ldm(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_ldm, 0, 1, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_ldm, 0, 1, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_ldm_priv(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_ldm_priv, 0, 1, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_ldm_priv, 0, 1, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_ldm_wb(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_ldm, 1, 2, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_ldm, 1, 2, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_ldmda(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_ldmda, 0, 1, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_ldmda, 0, 1, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_ldmda_priv(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_ldmda_priv, 0, 1, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_ldmda_priv, 0, 1, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_ldmda_priv_wb(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_ldmda_priv, 1, 2, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_ldmda_priv, 1, 2, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_ldmda_wb(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_ldmda, 1, 2, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_ldmda, 1, 2, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_ldmdb(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_ldmdb, 0, 1, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_ldmdb, 0, 1, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_ldmdb_priv(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_ldmdb_priv, 0, 1, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_ldmdb_priv, 0, 1, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_ldmdb_priv_wb(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_ldmdb_priv, 1, 2, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_ldmdb_priv, 1, 2, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_ldmdb_wb(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_ldmdb, 1, 2, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_ldmdb, 1, 2, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_ldmia_priv_wb(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_ldmia_priv, 1, 2, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_ldmia_priv, 1, 2, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_ldmib(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_ldmib, 0, 1, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_ldmib, 0, 1, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_ldmib_wb(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_ldmib, 1, 2, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_ldmib, 1, 2, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_stm(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_stm, 1, 0, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_stm, 1, 0, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_stm_priv(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_stm_priv, 1, 0, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_stm_priv, 1, 0, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_stm_wb(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_stm, 2, 1, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_stm, 2, 1, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_stmda(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_stmda, 1, 0, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_stmda, 1, 0, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_stmda_priv(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_stmda_priv, 1, 0, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_stmda_priv, 1, 0, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_stmda_wb(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_stmda, 2, 1, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_stmda, 2, 1, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_stmdb(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_stmdb, 1, 0, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_stmdb, 1, 0, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_stmdb_priv(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_stmdb_priv, 1, 0, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_stmdb_priv, 1, 0, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_stmdb_wb(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_stmdb, 2, 1, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_stmdb, 2, 1, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_stmib(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_stmib, 1, 0, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_stmib, 1, 0, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_stmib_wb(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_stmib, 2, 1, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_stmib, 2, 1, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld1_dup_8(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_8, 0, 1, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_8, 0, 1, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_vld1_dup_8_wb(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_8, 1, 2, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_8, 1, 2, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld2_dup_8(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_8, 0, 1, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_8, 0, 1, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_vld2_dup_8_wb(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_8, 1, 2, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_8, 1, 2, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_dup_8(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_8, 0, 1, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_8, 0, 1, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_vld3_dup_8_wb(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_8, 1, 2, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_8, 1, 2, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_dup_8(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_8, 0, 1, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_8, 0, 1, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_vld4_dup_8_wb(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_8, 1, 2, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_8, 1, 2, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vldmia(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vldmia, 0, 1, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vldmia, 0, 1, list_len, 0, (mem), __VA_ARGS__)
#define INSTR_CREATE_vstmia(dc, mem, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vstmia, 1, 0, list_len, (mem), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vstmia, 1, 0, list_len, 0, (mem), __VA_ARGS__)
/* @} */ /* end doxygen group */
/** @name Signature: (mem, Rm, list_len, ...) */
@@ -1932,13 +1932,13 @@
* \param ... The register list as separate opnd_t arguments.
*/
#define INSTR_CREATE_vld1_dup_8_wbreg(dc, mem, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_8, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_8, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld2_dup_8_wbreg(dc, mem, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_8, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_8, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_dup_8_wbreg(dc, mem, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_8, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_8, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_dup_8_wbreg(dc, mem, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_8, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_8, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
/* @} */ /* end doxygen group */
/** @name Signature: (mem, imm, list_len, ...) */
@@ -1956,165 +1956,165 @@
* \param ... The register list as separate opnd_t arguments.
*/
#define INSTR_CREATE_vld1_16(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_16, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_16, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld1_16_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_16, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_16, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld1_32(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_32, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_32, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld1_32_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_32, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_32, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld1_64(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_64, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_64, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld1_64_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_64, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_64, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld1_8(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_8, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_8, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld1_8_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_8, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_8, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld1_dup_16(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_16, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_16, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld1_dup_16_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_16, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_16, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld1_dup_32(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_32, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_32, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld1_dup_32_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_32, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_32, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld2_16(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_16, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_16, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld2_16_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_16, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_16, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld2_32(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_32, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_32, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld2_32_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_32, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_32, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld2_8(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_8, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_8, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld2_8_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_8, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_8, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld2_dup_16(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_16, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_16, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld2_dup_16_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_16, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_16, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld2_dup_32(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_32, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_32, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld2_dup_32_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_32, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_32, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld2_lane_8(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_8, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_8, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld2_lane_8_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_8, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_8, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_16(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_16, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_16, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld3_16_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_16, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_16, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_32(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_32, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_32, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld3_32_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_32, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_32, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_8(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_8, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_8, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld3_8_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_8, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_8, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_dup_16(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_16, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_16, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld3_dup_16_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_16, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_16, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_dup_32(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_32, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_32, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld3_dup_32_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_32, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_32, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_lane_8(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_8, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_8, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld3_lane_8_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_8, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_8, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_16(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_16, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_16, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld4_16_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_16, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_16, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_32(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_32, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_32, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld4_32_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_32, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_32, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_8(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_8, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_8, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld4_8_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_8, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_8, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_dup_16(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_16, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_16, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld4_dup_16_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_16, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_16, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_dup_32(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_32, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_32, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld4_dup_32_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_32, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_32, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_lane_8(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_8, 0, 2, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_8, 0, 2, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vld4_lane_8_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_8, 1, 3, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_8, 1, 3, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst1_16(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_16, 1, 1, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_16, 1, 1, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vst1_16_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_16, 2, 2, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_16, 2, 2, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst1_32(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_32, 1, 1, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_32, 1, 1, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vst1_32_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_32, 2, 2, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_32, 2, 2, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst1_64(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_64, 1, 1, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_64, 1, 1, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vst1_64_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_64, 2, 2, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_64, 2, 2, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst1_8(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_8, 1, 1, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_8, 1, 1, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vst1_8_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_8, 2, 2, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_8, 2, 2, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst2_16(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_16, 1, 1, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_16, 1, 1, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vst2_16_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_16, 2, 2, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_16, 2, 2, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst2_32(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_32, 1, 1, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_32, 1, 1, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vst2_32_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_32, 2, 2, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_32, 2, 2, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst2_8(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_8, 1, 1, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_8, 1, 1, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vst2_8_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_8, 2, 2, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_8, 2, 2, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst2_lane_8(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_8, 1, 1, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_8, 1, 1, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vst2_lane_8_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_8, 2, 2, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_8, 2, 2, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst3_16(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_16, 1, 1, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_16, 1, 1, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vst3_16_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_16, 2, 2, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_16, 2, 2, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst3_32(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_32, 1, 1, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_32, 1, 1, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vst3_32_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_32, 2, 2, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_32, 2, 2, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst3_8(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_8, 1, 1, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_8, 1, 1, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vst3_8_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_8, 2, 2, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_8, 2, 2, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst3_lane_8(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_8, 1, 1, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_8, 1, 1, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vst3_lane_8_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_8, 2, 2, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_8, 2, 2, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst4_16(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_16, 1, 1, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_16, 1, 1, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vst4_16_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_16, 2, 2, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_16, 2, 2, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst4_32(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_32, 1, 1, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_32, 1, 1, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vst4_32_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_32, 2, 2, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_32, 2, 2, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst4_8(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_8, 1, 1, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_8, 1, 1, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vst4_8_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_8, 2, 2, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_8, 2, 2, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst4_lane_8(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_8, 1, 1, list_len, (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_8, 1, 1, list_len, 0, (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vst4_lane_8_wbimm(dc, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_8, 2, 2, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_8, 2, 2, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
/* @} */ /* end doxygen group */
/** @name Signature: (Rd, mem, imm, list_len, ...) */
@@ -2133,9 +2133,9 @@
* \param ... The register list as separate opnd_t arguments.
*/
#define INSTR_CREATE_vldmdb(dc, Rd, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vldmdb, 1, 2, list_len, (Rd), (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vldmdb, 1, 2, list_len, 0, (Rd), (mem), (imm), __VA_ARGS__)
#define INSTR_CREATE_vldmia_imm(dc, Rd, mem, imm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vldmia, 1, 2, list_len, (Rd), (mem), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vldmia, 1, 2, list_len, 0, (Rd), (mem), (imm), __VA_ARGS__)
/* @} */ /* end doxygen group */
/** @name Signature: (mem, Rd, imm, list_len, ...) */
@@ -2154,9 +2154,9 @@
* \param ... The register list as separate opnd_t arguments.
*/
#define INSTR_CREATE_vstmdb(dc, mem, Rd, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vstmdb, 2, 1, list_len, (mem), (Rd), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vstmdb, 2, 1, list_len, 0, (mem), (Rd), (imm), __VA_ARGS__)
#define INSTR_CREATE_vstmia_imm(dc, mem, Rd, imm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vstmia, 2, 1, list_len, (mem), (Rd), (imm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vstmia, 2, 1, list_len, 0, (mem), (Rd), (imm), __VA_ARGS__)
/* @} */ /* end doxygen group */
/** @name Signature: (mem, imm, Rm, list_len, ...) */
@@ -2175,85 +2175,85 @@
* \param ... The register list as separate opnd_t arguments.
*/
#define INSTR_CREATE_vld1_16_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_16, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_16, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld1_32_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_32, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_32, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld1_64_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_64, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_64, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld1_8_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_8, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_8, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld1_dup_16_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_16, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_16, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld1_dup_32_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_32, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld1_dup_32, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld2_16_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_16, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_16, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld2_32_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_32, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_32, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld2_8_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_8, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_8, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld2_dup_16_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_16, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_16, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld2_dup_32_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_32, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_dup_32, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld2_lane_8_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_8, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_8, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_16_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_16, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_16, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_32_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_32, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_32, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_8_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_8, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_8, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_dup_16_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_16, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_16, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_dup_32_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_32, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_dup_32, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_lane_8_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_8, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_8, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_16_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_16, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_16, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_32_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_32, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_32, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_8_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_8, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_8, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_dup_16_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_16, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_16, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_dup_32_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_32, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_dup_32, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_lane_8_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_8, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_8, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst1_16_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_16, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_16, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst1_32_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_32, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_32, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst1_64_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_64, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_64, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst1_8_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_8, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst1_8, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst2_16_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_16, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_16, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst2_32_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_32, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_32, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst2_8_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_8, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_8, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst2_lane_8_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_8, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_8, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst3_16_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_16, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_16, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst3_32_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_32, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_32, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst3_8_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_8, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_8, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst3_lane_8_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_8, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_8, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst4_16_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_16, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_16, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst4_32_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_32, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_32, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst4_8_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_8, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_8, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst4_lane_8_wbreg(dc, mem, imm, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_8, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_8, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
/* @} */ /* end doxygen group */
/** @name Signature: (mem, imm, imm2, list_len, ...) */
@@ -2272,53 +2272,53 @@
* \param ... The register list as separate opnd_t arguments.
*/
#define INSTR_CREATE_vld2_lane_16(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_16, 0, 3, list_len, (mem), (imm), (imm2), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_16, 0, 3, list_len, 0, (mem), (imm), (imm2), __VA_ARGS__)
#define INSTR_CREATE_vld2_lane_16_wbimm(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_16, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_16, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld2_lane_32(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_32, 0, 3, list_len, (mem), (imm), (imm2), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_32, 0, 3, list_len, 0, (mem), (imm), (imm2), __VA_ARGS__)
#define INSTR_CREATE_vld2_lane_32_wbimm(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_32, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_32, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_lane_16(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_16, 0, 3, list_len, (mem), (imm), (imm2), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_16, 0, 3, list_len, 0, (mem), (imm), (imm2), __VA_ARGS__)
#define INSTR_CREATE_vld3_lane_16_wbimm(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_16, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_16, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_lane_32(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_32, 0, 3, list_len, (mem), (imm), (imm2), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_32, 0, 3, list_len, 0, (mem), (imm), (imm2), __VA_ARGS__)
#define INSTR_CREATE_vld3_lane_32_wbimm(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_32, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_32, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_lane_16(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_16, 0, 3, list_len, (mem), (imm), (imm2), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_16, 0, 3, list_len, 0, (mem), (imm), (imm2), __VA_ARGS__)
#define INSTR_CREATE_vld4_lane_16_wbimm(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_16, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_16, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_lane_32(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_32, 0, 3, list_len, (mem), (imm), (imm2), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_32, 0, 3, list_len, 0, (mem), (imm), (imm2), __VA_ARGS__)
#define INSTR_CREATE_vld4_lane_32_wbimm(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_32, 1, 4, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_32, 1, 4, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst2_lane_16(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_16, 1, 2, list_len, (mem), (imm), (imm2), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_16, 1, 2, list_len, 0, (mem), (imm), (imm2), __VA_ARGS__)
#define INSTR_CREATE_vst2_lane_16_wbimm(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_16, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_16, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst2_lane_32(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_32, 1, 2, list_len, (mem), (imm), (imm2), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_32, 1, 2, list_len, 0, (mem), (imm), (imm2), __VA_ARGS__)
#define INSTR_CREATE_vst2_lane_32_wbimm(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_32, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_32, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst3_lane_16(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_16, 1, 2, list_len, (mem), (imm), (imm2), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_16, 1, 2, list_len, 0, (mem), (imm), (imm2), __VA_ARGS__)
#define INSTR_CREATE_vst3_lane_16_wbimm(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_16, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_16, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst3_lane_32(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_32, 1, 2, list_len, (mem), (imm), (imm2), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_32, 1, 2, list_len, 0, (mem), (imm), (imm2), __VA_ARGS__)
#define INSTR_CREATE_vst3_lane_32_wbimm(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_32, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_32, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst4_lane_16(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_16, 1, 2, list_len, (mem), (imm), (imm2), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_16, 1, 2, list_len, 0, (mem), (imm), (imm2), __VA_ARGS__)
#define INSTR_CREATE_vst4_lane_16_wbimm(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_16, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_16, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst4_lane_32(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_32, 1, 2, list_len, (mem), (imm), (imm2), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_32, 1, 2, list_len, 0, (mem), (imm), (imm2), __VA_ARGS__)
#define INSTR_CREATE_vst4_lane_32_wbimm(dc, mem, imm, imm2, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_32, 2, 3, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_32, 2, 3, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
/* @} */ /* end doxygen group */
/** @name Signature: (mem, imm, imm2, Rm, list_len, ...) */
@@ -2338,29 +2338,29 @@
* \param ... The register list as separate opnd_t arguments.
*/
#define INSTR_CREATE_vld2_lane_16_wbreg(dc, mem, imm, imm2, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_16, 1, 5, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_16, 1, 5, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld2_lane_32_wbreg(dc, mem, imm, imm2, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_32, 1, 5, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld2_lane_32, 1, 5, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_lane_16_wbreg(dc, mem, imm, imm2, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_16, 1, 5, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_16, 1, 5, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld3_lane_32_wbreg(dc, mem, imm, imm2, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_32, 1, 5, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld3_lane_32, 1, 5, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_lane_16_wbreg(dc, mem, imm, imm2, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_16, 1, 5, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_16, 1, 5, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vld4_lane_32_wbreg(dc, mem, imm, imm2, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_32, 1, 5, list_len, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_vardst((dc), OP_vld4_lane_32, 1, 5, list_len, 0, opnd_create_reg(opnd_get_base(mem)), (mem), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst2_lane_16_wbreg(dc, mem, imm, imm2, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_16, 2, 4, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_16, 2, 4, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst2_lane_32_wbreg(dc, mem, imm, imm2, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_32, 2, 4, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst2_lane_32, 2, 4, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst3_lane_16_wbreg(dc, mem, imm, imm2, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_16, 2, 4, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_16, 2, 4, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst3_lane_32_wbreg(dc, mem, imm, imm2, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_32, 2, 4, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst3_lane_32, 2, 4, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst4_lane_16_wbreg(dc, mem, imm, imm2, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_16, 2, 4, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_16, 2, 4, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
#define INSTR_CREATE_vst4_lane_32_wbreg(dc, mem, imm, imm2, Rm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_32, 2, 4, list_len, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vst4_lane_32, 2, 4, list_len, 0, (mem), opnd_create_reg(opnd_get_base(mem)), (imm), (imm2), (Rm), opnd_create_reg(opnd_get_base(mem)), __VA_ARGS__)
/* @} */ /* end doxygen group */
/** @name Signature: (Ra, Rd, imm, imm2, cpreg) */
@@ -4231,9 +4231,9 @@
* \param ... The register list as separate opnd_t arguments.
*/
#define INSTR_CREATE_vtbl_8(dc, Vd, Vm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vtbl_8, 1, 1, list_len, (Vd), (Vm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vtbl_8, 1, 1, list_len, 0, (Vd), (Vm), __VA_ARGS__)
#define INSTR_CREATE_vtbx_8(dc, Vd, Vm, list_len, ...) \
- instr_create_Ndst_Msrc_varsrc((dc), OP_vtbx_8, 1, 1, list_len, (Vd), (Vm), __VA_ARGS__)
+ instr_create_Ndst_Msrc_varsrc((dc), OP_vtbx_8, 1, 1, list_len, 0, (Vd), (Vm), __VA_ARGS__)
/* @} */ /* end doxygen group */
diff --git a/core/arch/instr.h b/core/arch/instr.h
index 1fafa21..feb6c2f 100644
--- a/core/arch/instr.h
+++ b/core/arch/instr.h
@@ -2356,11 +2356,14 @@
* thread-local heap with opcode \p opcode, \p fixed_dsts destination operands,
* and \p fixed_srcs plus \p var_srcs source operands. The variable arguments
* must start with the (fixed) destinations, followed by the fixed sources,
- * followed by the variable sources.
+ * followed by the variable sources. The \p var_ord parameter specifies the
+ * (0-based) ordinal position within the resulting instruction's source array
+ * at which the variable sources should be placed, allowing them to be inserted
+ * in the middle of the fixed sources.
*/
instr_t *
instr_create_Ndst_Msrc_varsrc(dcontext_t *dcontext, int opcode, uint fixed_dsts,
- uint fixed_srcs, uint var_srcs, ...);
+ uint fixed_srcs, uint var_srcs, uint var_ord, ...);
DR_API
/**
@@ -2368,11 +2371,14 @@
* thread-local heap with opcode \p opcode, \p fixed_dsts plus \p var_dsts
* destination operands, and \p fixed_srcs source operands. The variable
* arguments must start with the fixed destinations, followed by the (fixed)
- * sources, followed by the variable destinations.
+ * sources, followed by the variable destinations. The \p var_ord parameter
+ * specifies the (0-based) ordinal position within the resulting instruction's
+ * destination array at which the variable destinations should be placed,
+ * allowing them to be inserted in the middle of the fixed destinations.
*/
instr_t *
instr_create_Ndst_Msrc_vardst(dcontext_t *dcontext, int opcode, uint fixed_dsts,
- uint fixed_srcs, uint var_dsts, ...);
+ uint fixed_srcs, uint var_dsts, uint var_ord, ...);
DR_API
/** Convenience routine that returns an initialized instr_t for OP_popa. */
diff --git a/core/arch/instr_shared.c b/core/arch/instr_shared.c
index c200f64..60ec635 100644
--- a/core/arch/instr_shared.c
+++ b/core/arch/instr_shared.c
@@ -2596,36 +2596,40 @@
instr_t *
instr_create_Ndst_Msrc_varsrc(dcontext_t *dcontext, int opcode, uint fixed_dsts,
- uint fixed_srcs, uint var_srcs, ...)
+ uint fixed_srcs, uint var_srcs, uint var_ord, ...)
{
va_list ap;
instr_t *in = instr_build(dcontext, opcode, fixed_dsts, fixed_srcs + var_srcs);
uint i;
- va_start(ap, var_srcs);
+ va_start(ap, var_ord);
for (i = 0; i < fixed_dsts; i++)
instr_set_dst(in, i, va_arg(ap, opnd_t));
- for (i = 0; i < fixed_srcs; i++)
+ for (i = 0; i < MIN(var_ord, fixed_srcs); i++)
instr_set_src(in, i, va_arg(ap, opnd_t));
+ for (i = var_ord; i < fixed_srcs; i++)
+ instr_set_src(in, var_srcs + i, va_arg(ap, opnd_t));
for (i = 0; i < var_srcs; i++)
- instr_set_src(in, fixed_srcs + i, va_arg(ap, opnd_t));
+ instr_set_src(in, var_ord + i, va_arg(ap, opnd_t));
va_end(ap);
return in;
}
instr_t *
instr_create_Ndst_Msrc_vardst(dcontext_t *dcontext, int opcode, uint fixed_dsts,
- uint fixed_srcs, uint var_dsts, ...)
+ uint fixed_srcs, uint var_dsts, uint var_ord, ...)
{
va_list ap;
instr_t *in = instr_build(dcontext, opcode, fixed_dsts + var_dsts, fixed_srcs);
uint i;
- va_start(ap, var_dsts);
- for (i = 0; i < fixed_dsts; i++)
+ va_start(ap, var_ord);
+ for (i = 0; i < MIN(var_ord, fixed_dsts); i++)
instr_set_dst(in, i, va_arg(ap, opnd_t));
+ for (i = var_ord; i < fixed_dsts; i++)
+ instr_set_dst(in, var_dsts + i, va_arg(ap, opnd_t));
for (i = 0; i < fixed_srcs; i++)
instr_set_src(in, i, va_arg(ap, opnd_t));
for (i = 0; i < var_dsts; i++)
- instr_set_dst(in, fixed_dsts + i, va_arg(ap, opnd_t));
+ instr_set_dst(in, var_ord + i, va_arg(ap, opnd_t));
va_end(ap);
return in;
}
diff --git a/tools/arm_macros_gen.pl b/tools/arm_macros_gen.pl
index a8394f8..6c090f5 100755
--- a/tools/arm_macros_gen.pl
+++ b/tools/arm_macros_gen.pl
@@ -430,6 +430,14 @@
# List => vararg with list at end of course
if ($sig =~ /\bL/) {
+ # Figure out at which index in src/dst list the vararg should be inserted
+ my $idx = 0;
+ my @ops = split(' ', $sig);
+ for (my $i = 0; $i <= $#ops; $i++) {
+ last if ($ops[$i] =~ /^L/);
+ $idx++;
+ $idx = 0 if ($ops[$i] =~ /;$/);
+ }
$arg_str =~ s/, L\w+//;
$call_str =~ s/, \(L\w+\)//;
$arg_str .= ", list_len, ...";
@@ -441,7 +449,7 @@
$func_sfx = '_vardst';
$opc_str .= ", ".($num_tot_dsts-1).", $num_tot_srcs";
}
- $opc_str .= ", list_len";
+ $opc_str .= ", list_len, $idx";
$num_tot_dsts = 'N';
$num_tot_srcs = 'M';
}