@img/sharp-libvips-dev 1.1.0 → 1.2.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cplusplus/vips-operators.cpp +39 -0
- package/include/archive.h +53 -2
- package/include/archive_entry.h +56 -25
- package/include/ffi.h +20 -2
- package/include/fontconfig/fontconfig.h +1 -1
- package/include/glib-2.0/gio/gio-visibility.h +34 -0
- package/include/glib-2.0/gio/gzlibcompressor.h +6 -0
- package/include/glib-2.0/girepository/gi-visibility.h +34 -0
- package/include/glib-2.0/girepository/gitypes.h +6 -0
- package/include/glib-2.0/glib/gbitlock.h +11 -0
- package/include/glib-2.0/glib/gdate.h +6 -0
- package/include/glib-2.0/glib/glib-visibility.h +35 -1
- package/include/glib-2.0/glib/gmain.h +13 -10
- package/include/glib-2.0/glib/gmessages.h +4 -1
- package/include/glib-2.0/glib/gstring.h +2 -0
- package/include/glib-2.0/glib/gversionmacros.h +9 -0
- package/include/glib-2.0/glib/gwin32.h +54 -4
- package/include/glib-2.0/gmodule/gmodule-visibility.h +34 -0
- package/include/glib-2.0/gobject/gobject-visibility.h +35 -1
- package/include/glib-2.0/msvc_recommended_pragmas.h +41 -0
- package/include/harfbuzz/hb-common.h +1 -431
- package/include/harfbuzz/hb-deprecated.h +80 -2
- package/include/harfbuzz/hb-draw.h +2 -10
- package/include/harfbuzz/hb-face.h +1 -1
- package/include/harfbuzz/hb-font.h +55 -36
- package/include/harfbuzz/hb-paint.h +5 -3
- package/include/harfbuzz/hb-script-list.h +484 -0
- package/include/harfbuzz/hb-subset.h +22 -2
- package/include/harfbuzz/hb-version.h +3 -3
- package/include/libheif/heif.h +2 -0
- package/include/libheif/heif_version.h +2 -2
- package/include/libpng16/png.h +10 -10
- package/include/libpng16/pngconf.h +20 -27
- package/include/libpng16/pnglibconf.h +1 -1
- package/include/libxml2/libxml/HTMLparser.h +2 -2
- package/include/libxml2/libxml/parser.h +2 -0
- package/include/libxml2/libxml/xmlIO.h +2 -2
- package/include/libxml2/libxml/xmlerror.h +1 -1
- package/include/libxml2/libxml/xmlversion.h +4 -4
- package/include/pixman-1/pixman-version.h +2 -2
- package/include/pixman-1/pixman.h +200 -0
- package/include/png.h +10 -10
- package/include/pngconf.h +20 -27
- package/include/pnglibconf.h +1 -1
- package/include/vips/VImage8.h +62 -14
- package/include/vips/arithmetic.h +34 -34
- package/include/vips/basic.h +16 -0
- package/include/vips/buf.h +0 -5
- package/include/vips/colour.h +6 -7
- package/include/vips/connection.h +25 -37
- package/include/vips/enumtypes.h +11 -2
- package/include/vips/foreign.h +73 -43
- package/include/vips/format.h +7 -5
- package/include/vips/gate.h +0 -11
- package/include/vips/header.h +11 -11
- package/include/vips/image.h +8 -3
- package/include/vips/interpolate.h +0 -2
- package/include/vips/memory.h +4 -0
- package/include/vips/mosaicing.h +4 -0
- package/include/vips/object.h +14 -18
- package/include/vips/operation.h +0 -2
- package/include/vips/private.h +50 -2
- package/include/vips/region.h +1 -3
- package/include/vips/resample.h +2 -0
- package/include/vips/semaphore.h +8 -3
- package/include/vips/thread.h +1 -24
- package/include/vips/threadpool.h +0 -6
- package/include/vips/type.h +13 -9
- package/include/vips/util.h +17 -98
- package/include/vips/vector.h +0 -4
- package/include/vips/version.h +8 -8
- package/include/vips/vips.h +1 -0
- package/package.json +1 -1
- package/versions.json +11 -11
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-animation.h +0 -221
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-autocleanups.h +0 -37
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h +0 -525
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h +0 -40
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-features.h +0 -115
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-io.h +0 -481
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-loader.h +0 -113
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-macros.h +0 -718
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-marshal.h +0 -33
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h +0 -70
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-transform.h +0 -168
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h +0 -46
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixdata.h +0 -165
- package/include/harfbuzz/hb-subset-repacker.h +0 -81
- package/include/hwy/ops/tuple-inl.h +0 -125
- package/include/orc-0.4/orc/orc-stdint.h +0 -1
- package/include/orc-0.4/orc/orc.h +0 -16
- package/include/orc-0.4/orc/orcarm.h +0 -879
- package/include/orc-0.4/orc/orcbytecode.h +0 -35
- package/include/orc-0.4/orc/orcbytecodes.h +0 -255
- package/include/orc-0.4/orc/orccode.h +0 -53
- package/include/orc-0.4/orc/orccompiler.h +0 -176
- package/include/orc-0.4/orc/orcconstant.h +0 -39
- package/include/orc-0.4/orc/orccpu.h +0 -21
- package/include/orc-0.4/orc/orccpuinsn.h +0 -40
- package/include/orc-0.4/orc/orcdebug.h +0 -158
- package/include/orc-0.4/orc/orcemulateopcodes.h +0 -203
- package/include/orc-0.4/orc/orcexecutor.h +0 -135
- package/include/orc-0.4/orc/orcfunctions.h +0 -93
- package/include/orc-0.4/orc/orcinstruction.h +0 -39
- package/include/orc-0.4/orc/orcinternal.h +0 -46
- package/include/orc-0.4/orc/orclimits.h +0 -94
- package/include/orc-0.4/orc/orcmips.h +0 -229
- package/include/orc-0.4/orc/orcmmx.h +0 -79
- package/include/orc-0.4/orc/orcneon.h +0 -43
- package/include/orc-0.4/orc/orconce.h +0 -166
- package/include/orc-0.4/orc/orcopcode.h +0 -63
- package/include/orc-0.4/orc/orcparse.h +0 -27
- package/include/orc-0.4/orc/orcpowerpc.h +0 -209
- package/include/orc-0.4/orc/orcprogram.h +0 -192
- package/include/orc-0.4/orc/orcrule.h +0 -52
- package/include/orc-0.4/orc/orcsse.h +0 -55
- package/include/orc-0.4/orc/orctarget.h +0 -115
- package/include/orc-0.4/orc/orcutils.h +0 -238
- package/include/orc-0.4/orc/orcvariable.h +0 -81
- package/include/orc-0.4/orc/orcx86.h +0 -199
- package/include/orc-0.4/orc/orcx86insn.h +0 -672
|
@@ -1,879 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
#ifndef _ORC_ARM_H_
|
|
3
|
-
#define _ORC_ARM_H_
|
|
4
|
-
|
|
5
|
-
#include <orc/orc.h>
|
|
6
|
-
|
|
7
|
-
ORC_BEGIN_DECLS
|
|
8
|
-
|
|
9
|
-
#ifdef ORC_ENABLE_UNSTABLE_API
|
|
10
|
-
|
|
11
|
-
typedef enum {
|
|
12
|
-
ORC_ARM_A1 = ORC_GP_REG_BASE+0,
|
|
13
|
-
ORC_ARM_A2,
|
|
14
|
-
ORC_ARM_A3,
|
|
15
|
-
ORC_ARM_A4,
|
|
16
|
-
ORC_ARM_V1,
|
|
17
|
-
ORC_ARM_V2,
|
|
18
|
-
ORC_ARM_V3,
|
|
19
|
-
ORC_ARM_V4,
|
|
20
|
-
ORC_ARM_V5,
|
|
21
|
-
ORC_ARM_V6,
|
|
22
|
-
ORC_ARM_V7,
|
|
23
|
-
ORC_ARM_V8,
|
|
24
|
-
ORC_ARM_IP,
|
|
25
|
-
ORC_ARM_SP,
|
|
26
|
-
ORC_ARM_LR,
|
|
27
|
-
ORC_ARM_PC
|
|
28
|
-
} OrcArmRegister;
|
|
29
|
-
|
|
30
|
-
typedef enum {
|
|
31
|
-
ORC_ARM64_R0 = ORC_GP_REG_BASE+0,
|
|
32
|
-
ORC_ARM64_R1,
|
|
33
|
-
ORC_ARM64_R2,
|
|
34
|
-
ORC_ARM64_R3,
|
|
35
|
-
ORC_ARM64_R4,
|
|
36
|
-
ORC_ARM64_R5,
|
|
37
|
-
ORC_ARM64_R6,
|
|
38
|
-
ORC_ARM64_R7,
|
|
39
|
-
ORC_ARM64_R8,
|
|
40
|
-
ORC_ARM64_R9,
|
|
41
|
-
ORC_ARM64_R10,
|
|
42
|
-
ORC_ARM64_R11,
|
|
43
|
-
ORC_ARM64_R12,
|
|
44
|
-
ORC_ARM64_R13,
|
|
45
|
-
ORC_ARM64_R14,
|
|
46
|
-
ORC_ARM64_R15,
|
|
47
|
-
ORC_ARM64_IP0,
|
|
48
|
-
ORC_ARM64_IP1,
|
|
49
|
-
ORC_ARM64_R18,
|
|
50
|
-
ORC_ARM64_R19,
|
|
51
|
-
ORC_ARM64_R20,
|
|
52
|
-
ORC_ARM64_R21,
|
|
53
|
-
ORC_ARM64_R22,
|
|
54
|
-
ORC_ARM64_R23,
|
|
55
|
-
ORC_ARM64_R24,
|
|
56
|
-
ORC_ARM64_R25,
|
|
57
|
-
ORC_ARM64_R26,
|
|
58
|
-
ORC_ARM64_R27,
|
|
59
|
-
ORC_ARM64_R28,
|
|
60
|
-
ORC_ARM64_FP,
|
|
61
|
-
ORC_ARM64_LR,
|
|
62
|
-
ORC_ARM64_SP,
|
|
63
|
-
} OrcArm64Register;
|
|
64
|
-
|
|
65
|
-
typedef enum {
|
|
66
|
-
ORC_ARM64_REG_32 = 32,
|
|
67
|
-
ORC_ARM64_REG_64 = 64
|
|
68
|
-
} OrcArm64RegBits;
|
|
69
|
-
|
|
70
|
-
typedef enum {
|
|
71
|
-
ORC_ARM_DP_AND = 0,
|
|
72
|
-
ORC_ARM_DP_EOR,
|
|
73
|
-
ORC_ARM_DP_SUB,
|
|
74
|
-
ORC_ARM_DP_RSB,
|
|
75
|
-
ORC_ARM_DP_ADD,
|
|
76
|
-
ORC_ARM_DP_ADC,
|
|
77
|
-
ORC_ARM_DP_SBC,
|
|
78
|
-
ORC_ARM_DP_RSC,
|
|
79
|
-
ORC_ARM_DP_TST,
|
|
80
|
-
ORC_ARM_DP_TEQ,
|
|
81
|
-
ORC_ARM_DP_CMP,
|
|
82
|
-
ORC_ARM_DP_CMN,
|
|
83
|
-
ORC_ARM_DP_ORR,
|
|
84
|
-
ORC_ARM_DP_MOV,
|
|
85
|
-
ORC_ARM_DP_BIC,
|
|
86
|
-
ORC_ARM_DP_MVN
|
|
87
|
-
} OrcArmDP;
|
|
88
|
-
|
|
89
|
-
typedef enum {
|
|
90
|
-
/** arithmetic */
|
|
91
|
-
ORC_ARM64_DP_ADD = 0,
|
|
92
|
-
ORC_ARM64_DP_ADDS, /** alias of CMN */
|
|
93
|
-
ORC_ARM64_DP_SUB,
|
|
94
|
-
ORC_ARM64_DP_SUBS, /** alias of CMP */
|
|
95
|
-
/** logical */
|
|
96
|
-
ORC_ARM64_DP_AND,
|
|
97
|
-
ORC_ARM64_DP_ORR, /** alias of MOV */
|
|
98
|
-
ORC_ARM64_DP_EOR,
|
|
99
|
-
ORC_ARM64_DP_ANDS, /** alias of TST */
|
|
100
|
-
/** shift */
|
|
101
|
-
ORC_ARM64_DP_LSL,
|
|
102
|
-
ORC_ARM64_DP_LSR,
|
|
103
|
-
ORC_ARM64_DP_ASR,
|
|
104
|
-
ORC_ARM64_DP_ROR,
|
|
105
|
-
/** bitfield */
|
|
106
|
-
ORC_ARM64_DP_SBFM,
|
|
107
|
-
ORC_ARM64_DP_BFM,
|
|
108
|
-
ORC_ARM64_DP_UBFM,
|
|
109
|
-
/** extract */
|
|
110
|
-
ORC_ARM64_DP_EXTR
|
|
111
|
-
} OrcArm64DP;
|
|
112
|
-
|
|
113
|
-
typedef enum {
|
|
114
|
-
ORC_ARM64_MEM_STR = 0,
|
|
115
|
-
ORC_ARM64_MEM_LDR
|
|
116
|
-
} OrcArm64Mem;
|
|
117
|
-
|
|
118
|
-
typedef enum {
|
|
119
|
-
ORC_ARM64_TYPE_IMM = 0,
|
|
120
|
-
ORC_ARM64_TYPE_REG,
|
|
121
|
-
ORC_ARM64_TYPE_EXT
|
|
122
|
-
} OrcArm64Type;
|
|
123
|
-
|
|
124
|
-
typedef enum {
|
|
125
|
-
ORC_ARM64_UXTB,
|
|
126
|
-
ORC_ARM64_UXTH,
|
|
127
|
-
ORC_ARM64_UXTW,
|
|
128
|
-
ORC_ARM64_UXTX,
|
|
129
|
-
ORC_ARM64_SXTB,
|
|
130
|
-
ORC_ARM64_SXTH,
|
|
131
|
-
ORC_ARM64_SXTW,
|
|
132
|
-
ORC_ARM64_SXTX,
|
|
133
|
-
} OrcArm64Extend;
|
|
134
|
-
|
|
135
|
-
typedef enum {
|
|
136
|
-
ORC_ARM_COND_EQ = 0,
|
|
137
|
-
ORC_ARM_COND_NE,
|
|
138
|
-
ORC_ARM_COND_CS,
|
|
139
|
-
ORC_ARM_COND_CC,
|
|
140
|
-
ORC_ARM_COND_MI,
|
|
141
|
-
ORC_ARM_COND_PL,
|
|
142
|
-
ORC_ARM_COND_VS,
|
|
143
|
-
ORC_ARM_COND_VC,
|
|
144
|
-
ORC_ARM_COND_HI,
|
|
145
|
-
ORC_ARM_COND_LS,
|
|
146
|
-
ORC_ARM_COND_GE,
|
|
147
|
-
ORC_ARM_COND_LT,
|
|
148
|
-
ORC_ARM_COND_GT,
|
|
149
|
-
ORC_ARM_COND_LE,
|
|
150
|
-
ORC_ARM_COND_AL,
|
|
151
|
-
} OrcArmCond;
|
|
152
|
-
|
|
153
|
-
typedef enum {
|
|
154
|
-
ORC_ARM_LSL,
|
|
155
|
-
ORC_ARM_LSR,
|
|
156
|
-
ORC_ARM_ASR,
|
|
157
|
-
ORC_ARM_ROR
|
|
158
|
-
} OrcArmShift;
|
|
159
|
-
|
|
160
|
-
ORC_API unsigned long orc_arm_get_cpu_flags (void);
|
|
161
|
-
|
|
162
|
-
ORC_API void orc_arm_emit (OrcCompiler *compiler, orc_uint32 insn);
|
|
163
|
-
ORC_API void orc_arm_emit_bx_lr (OrcCompiler *compiler);
|
|
164
|
-
ORC_API const char * orc_arm_reg_name (int reg);
|
|
165
|
-
ORC_API const char * orc_arm_cond_name (OrcArmCond cond);
|
|
166
|
-
ORC_API void orc_arm_emit_load_imm (OrcCompiler *compiler, int dest, int imm);
|
|
167
|
-
|
|
168
|
-
ORC_API void orc_arm_emit_add (OrcCompiler *compiler, int dest, int src1, int src2);
|
|
169
|
-
ORC_API void orc_arm_emit_sub (OrcCompiler *compiler, int dest, int src1, int src2);
|
|
170
|
-
ORC_API void orc_arm_emit_add_imm (OrcCompiler *compiler, int dest, int src1, int value);
|
|
171
|
-
ORC_API void orc_arm_emit_and_imm (OrcCompiler *compiler, int dest, int src1, int value);
|
|
172
|
-
ORC_API void orc_arm_emit_sub_imm (OrcCompiler *compiler, int dest, int src1, int value, int record);
|
|
173
|
-
ORC_API void orc_arm_emit_asr_imm (OrcCompiler *compiler, int dest, int src1, int value);
|
|
174
|
-
ORC_API void orc_arm_emit_lsl_imm (OrcCompiler *compiler, int dest, int src1, int value);
|
|
175
|
-
ORC_API void orc_arm_emit_cmp_imm (OrcCompiler *compiler, int src1, int value);
|
|
176
|
-
ORC_API void orc_arm_emit_cmp (OrcCompiler *compiler, int src1, int src2);
|
|
177
|
-
ORC_API void orc_arm_emit_mov (OrcCompiler *compiler, int dest, int src);
|
|
178
|
-
|
|
179
|
-
ORC_API void orc_arm_emit_align (OrcCompiler *compiler, int align_shift);
|
|
180
|
-
ORC_API void orc_arm_emit_label (OrcCompiler *compiler, int label);
|
|
181
|
-
ORC_API void orc_arm_emit_push (OrcCompiler *compiler, int regs, orc_uint32 vregs);
|
|
182
|
-
ORC_API void orc_arm_emit_pop (OrcCompiler *compiler, int regs, orc_uint32 vregs);
|
|
183
|
-
ORC_API void orc_arm_emit_branch (OrcCompiler *compiler, int cond, int label);
|
|
184
|
-
ORC_API void orc_arm_emit_data (OrcCompiler *compiler, orc_uint32 data);
|
|
185
|
-
|
|
186
|
-
ORC_API void orc_arm_loadb (OrcCompiler *compiler, int dest, int src1, int offset);
|
|
187
|
-
ORC_API void orc_arm_storeb (OrcCompiler *compiler, int dest, int offset, int src1);
|
|
188
|
-
ORC_API void orc_arm_loadw (OrcCompiler *compiler, int dest, int src1, int offset);
|
|
189
|
-
ORC_API void orc_arm_storew (OrcCompiler *compiler, int dest, int offset, int src1);
|
|
190
|
-
ORC_API void orc_arm_loadl (OrcCompiler *compiler, int dest, int src1, int offset);
|
|
191
|
-
ORC_API void orc_arm_storel (OrcCompiler *compiler, int dest, int offset, int src1);
|
|
192
|
-
|
|
193
|
-
ORC_API void orc_arm_emit_load_reg (OrcCompiler *compiler, int dest, int src1, int offset);
|
|
194
|
-
ORC_API void orc_arm_emit_store_reg (OrcCompiler *compiler, int src, int dest, int offset);
|
|
195
|
-
|
|
196
|
-
ORC_API void orc_arm_add_fixup (OrcCompiler *compiler, int label, int type);
|
|
197
|
-
ORC_API void orc_arm_do_fixups (OrcCompiler *compiler);
|
|
198
|
-
|
|
199
|
-
ORC_API void orc_arm_emit_dp (OrcCompiler *p, int type, OrcArmCond cond, OrcArmDP opcode,
|
|
200
|
-
int S, int Rd, int Rn, int Rm, int shift, orc_uint32 val);
|
|
201
|
-
ORC_API void orc_arm_emit_par (OrcCompiler *p, int op, int mode, OrcArmCond cond,
|
|
202
|
-
int Rd, int Rn, int Rm);
|
|
203
|
-
ORC_API void orc_arm_emit_xt (OrcCompiler *p, int op, OrcArmCond cond,
|
|
204
|
-
int Rd, int Rn, int Rm, int r8);
|
|
205
|
-
ORC_API void orc_arm_emit_pkh (OrcCompiler *p, int op, OrcArmCond cond,
|
|
206
|
-
int Rd, int Rn, int Rm, int sh);
|
|
207
|
-
ORC_API void orc_arm_emit_sat (OrcCompiler *p, int op, OrcArmCond cond,
|
|
208
|
-
int Rd, int sat, int Rm, int sh, int asr);
|
|
209
|
-
ORC_API void orc_arm_emit_rv (OrcCompiler *p, int op, OrcArmCond cond,
|
|
210
|
-
int Rd, int Rm);
|
|
211
|
-
ORC_API void orc_arm_emit_nop (OrcCompiler *compiler);
|
|
212
|
-
|
|
213
|
-
ORC_API void orc_arm_flush_cache (OrcCode *code);
|
|
214
|
-
|
|
215
|
-
/* ALL cpus */
|
|
216
|
-
/* data procesing instructions */
|
|
217
|
-
/* <op>{<cond>}{s} {<Rd>}, <Rn>, #imm */
|
|
218
|
-
#define orc_arm_emit_and_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,cond,ORC_ARM_DP_AND,S,Rd,Rn,0,0,imm)
|
|
219
|
-
#define orc_arm_emit_eor_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,cond,ORC_ARM_DP_EOR,S,Rd,Rn,0,0,imm)
|
|
220
|
-
#define orc_arm_emit_sub_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,cond,ORC_ARM_DP_SUB,S,Rd,Rn,0,0,imm)
|
|
221
|
-
#define orc_arm_emit_rsb_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,cond,ORC_ARM_DP_RSB,S,Rd,Rn,0,0,imm)
|
|
222
|
-
#define orc_arm_emit_add_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,cond,ORC_ARM_DP_ADD,S,Rd,Rn,0,0,imm)
|
|
223
|
-
#define orc_arm_emit_adc_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,cond,ORC_ARM_DP_ADC,S,Rd,Rn,0,0,imm)
|
|
224
|
-
#define orc_arm_emit_sbc_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,cond,ORC_ARM_DP_SBC,S,Rd,Rn,0,0,imm)
|
|
225
|
-
#define orc_arm_emit_rsc_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,cond,ORC_ARM_DP_RSC,S,Rd,Rn,0,0,imm)
|
|
226
|
-
#define orc_arm_emit_tst_i(p,cond,Rn,imm) orc_arm_emit_dp(p,0,cond,ORC_ARM_DP_TST,1, 0,Rn,0,0,imm)
|
|
227
|
-
#define orc_arm_emit_teq_i(p,cond,Rn,imm) orc_arm_emit_dp(p,0,cond,ORC_ARM_DP_TEQ,1, 0,Rn,0,0,imm)
|
|
228
|
-
#define orc_arm_emit_cmp_i(p,cond,Rn,imm) orc_arm_emit_dp(p,0,cond,ORC_ARM_DP_CMP,1, 0,Rn,0,0,imm)
|
|
229
|
-
#define orc_arm_emit_cmn_i(p,cond,Rn,imm) orc_arm_emit_dp(p,0,cond,ORC_ARM_DP_CMN,1, 0,Rn,0,0,imm)
|
|
230
|
-
#define orc_arm_emit_orr_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,cond,ORC_ARM_DP_ORR,S,Rd,Rn,0,0,imm)
|
|
231
|
-
#define orc_arm_emit_mov_i(p,cond,S,Rd,imm) orc_arm_emit_dp(p,0,cond,ORC_ARM_DP_MOV,S,Rd, 0,0,0,imm)
|
|
232
|
-
#define orc_arm_emit_bic_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,cond,ORC_ARM_DP_BIC,S,Rd,Rn,0,0,imm)
|
|
233
|
-
#define orc_arm_emit_mvn_i(p,cond,S,Rd,imm) orc_arm_emit_dp(p,0,cond,ORC_ARM_DP_MVN,S,Rd, 0,0,0,imm)
|
|
234
|
-
|
|
235
|
-
/* <op>{<cond>}{s} {<Rd>}, <Rn>, <Rm> */
|
|
236
|
-
#define orc_arm_emit_and_r(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,1,cond,ORC_ARM_DP_AND,S,Rd,Rn,Rm,0,0)
|
|
237
|
-
#define orc_arm_emit_eor_r(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,1,cond,ORC_ARM_DP_EOR,S,Rd,Rn,Rm,0,0)
|
|
238
|
-
#define orc_arm_emit_sub_r(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,1,cond,ORC_ARM_DP_SUB,S,Rd,Rn,Rm,0,0)
|
|
239
|
-
#define orc_arm_emit_rsb_r(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,1,cond,ORC_ARM_DP_RSB,S,Rd,Rn,Rm,0,0)
|
|
240
|
-
#define orc_arm_emit_add_r(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,1,cond,ORC_ARM_DP_ADD,S,Rd,Rn,Rm,0,0)
|
|
241
|
-
#define orc_arm_emit_adc_r(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,1,cond,ORC_ARM_DP_ADC,S,Rd,Rn,Rm,0,0)
|
|
242
|
-
#define orc_arm_emit_sbc_r(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,1,cond,ORC_ARM_DP_SBC,S,Rd,Rn,Rm,0,0)
|
|
243
|
-
#define orc_arm_emit_rsc_r(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,1,cond,ORC_ARM_DP_RSC,S,Rd,Rn,Rm,0,0)
|
|
244
|
-
#define orc_arm_emit_tst_r(p,cond,Rn,Rm) orc_arm_emit_dp(p,1,cond,ORC_ARM_DP_TST,1, 0,Rn,Rm,0,0)
|
|
245
|
-
#define orc_arm_emit_teq_r(p,cond,Rn,Rm) orc_arm_emit_dp(p,1,cond,ORC_ARM_DP_TEQ,1, 0,Rn,Rm,0,0)
|
|
246
|
-
#define orc_arm_emit_cmp_r(p,cond,Rn,Rm) orc_arm_emit_dp(p,1,cond,ORC_ARM_DP_CMP,1, 0,Rn,Rm,0,0)
|
|
247
|
-
#define orc_arm_emit_cmn_r(p,cond,Rn,Rm) orc_arm_emit_dp(p,1,cond,ORC_ARM_DP_CMN,1, 0,Rn,Rm,0,0)
|
|
248
|
-
#define orc_arm_emit_orr_r(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,1,cond,ORC_ARM_DP_ORR,S,Rd,Rn,Rm,0,0)
|
|
249
|
-
#define orc_arm_emit_mov_r(p,cond,S,Rd,Rm) orc_arm_emit_dp(p,1,cond,ORC_ARM_DP_MOV,S,Rd, 0,Rm,0,0)
|
|
250
|
-
#define orc_arm_emit_bic_r(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,1,cond,ORC_ARM_DP_BIC,S,Rd,Rn,Rm,0,0)
|
|
251
|
-
#define orc_arm_emit_mvn_r(p,cond,S,Rd,Rm) orc_arm_emit_dp(p,1,cond,ORC_ARM_DP_MVN,S,Rd, 0,Rm,0,0)
|
|
252
|
-
|
|
253
|
-
/* <op>{<cond>}{s} {<Rd>}, <Rn>, <Rm>, [LSL|LSR|ASR] #imm */
|
|
254
|
-
#define orc_arm_emit_and_rsi(p,cond,S,Rd,Rn,Rm,sh,im) orc_arm_emit_dp(p,2,cond,ORC_ARM_DP_AND,S,Rd,Rn,Rm,sh,im)
|
|
255
|
-
#define orc_arm_emit_eor_rsi(p,cond,S,Rd,Rn,Rm,sh,im) orc_arm_emit_dp(p,2,cond,ORC_ARM_DP_EOR,S,Rd,Rn,Rm,sh,im)
|
|
256
|
-
#define orc_arm_emit_sub_rsi(p,cond,S,Rd,Rn,Rm,sh,im) orc_arm_emit_dp(p,2,cond,ORC_ARM_DP_SUB,S,Rd,Rn,Rm,sh,im)
|
|
257
|
-
#define orc_arm_emit_rsb_rsi(p,cond,S,Rd,Rn,Rm,sh,im) orc_arm_emit_dp(p,2,cond,ORC_ARM_DP_RSB,S,Rd,Rn,Rm,sh,im)
|
|
258
|
-
#define orc_arm_emit_add_rsi(p,cond,S,Rd,Rn,Rm,sh,im) orc_arm_emit_dp(p,2,cond,ORC_ARM_DP_ADD,S,Rd,Rn,Rm,sh,im)
|
|
259
|
-
#define orc_arm_emit_adc_rsi(p,cond,S,Rd,Rn,Rm,sh,im) orc_arm_emit_dp(p,2,cond,ORC_ARM_DP_ADC,S,Rd,Rn,Rm,sh,im)
|
|
260
|
-
#define orc_arm_emit_sbc_rsi(p,cond,S,Rd,Rn,Rm,sh,im) orc_arm_emit_dp(p,2,cond,ORC_ARM_DP_SBC,S,Rd,Rn,Rm,sh,im)
|
|
261
|
-
#define orc_arm_emit_rsc_rsi(p,cond,S,Rd,Rn,Rm,sh,im) orc_arm_emit_dp(p,2,cond,ORC_ARM_DP_RSC,S,Rd,Rn,Rm,sh,im)
|
|
262
|
-
#define orc_arm_emit_tst_rsi(p,cond,Rn,Rm,sh,im) orc_arm_emit_dp(p,2,cond,ORC_ARM_DP_TST,1, 0,Rn,Rm,sh,im)
|
|
263
|
-
#define orc_arm_emit_teq_rsi(p,cond,Rn,Rm,sh,im) orc_arm_emit_dp(p,2,cond,ORC_ARM_DP_TEQ,1, 0,Rn,Rm,sh,im)
|
|
264
|
-
#define orc_arm_emit_cmp_rsi(p,cond,Rn,Rm,sh,im) orc_arm_emit_dp(p,2,cond,ORC_ARM_DP_CMP,1, 0,Rn,Rm,sh,im)
|
|
265
|
-
#define orc_arm_emit_cmn_rsi(p,cond,Rn,Rm,sh,im) orc_arm_emit_dp(p,2,cond,ORC_ARM_DP_CMN,1, 0,Rn,Rm,sh,im)
|
|
266
|
-
#define orc_arm_emit_orr_rsi(p,cond,S,Rd,Rn,Rm,sh,im) orc_arm_emit_dp(p,2,cond,ORC_ARM_DP_ORR,S,Rd,Rn,Rm,sh,im)
|
|
267
|
-
#define orc_arm_emit_mov_rsi(p,cond,S,Rd,Rm,sh,im) orc_arm_emit_dp(p,2,cond,ORC_ARM_DP_MOV,S,Rd, 0,Rm,sh,im)
|
|
268
|
-
#define orc_arm_emit_bic_rsi(p,cond,S,Rd,Rn,Rm,sh,im) orc_arm_emit_dp(p,2,cond,ORC_ARM_DP_BIC,S,Rd,Rn,Rm,sh,im)
|
|
269
|
-
#define orc_arm_emit_mvn_rsi(p,cond,S,Rd,Rm,sh,im) orc_arm_emit_dp(p,2,cond,ORC_ARM_DP_MVN,S,Rd, 0,Rm,sh,im)
|
|
270
|
-
|
|
271
|
-
/* <op>{<cond>}{s} {<Rd>}, <Rn>, <Rm>, [LSL|LSR|ASR] <Rs> */
|
|
272
|
-
#define orc_arm_emit_and_rsr(p,cond,S,Rd,Rn,Rm,sh,Rs) orc_arm_emit_dp(p,3,cond,ORC_ARM_DP_AND,S,Rd,Rn,Rm,sh,Rs)
|
|
273
|
-
#define orc_arm_emit_eor_rsr(p,cond,S,Rd,Rn,Rm,sh,Rs) orc_arm_emit_dp(p,3,cond,ORC_ARM_DP_EOR,S,Rd,Rn,Rm,sh,Rs)
|
|
274
|
-
#define orc_arm_emit_sub_rsr(p,cond,S,Rd,Rn,Rm,sh,Rs) orc_arm_emit_dp(p,3,cond,ORC_ARM_DP_SUB,S,Rd,Rn,Rm,sh,Rs)
|
|
275
|
-
#define orc_arm_emit_rsb_rsr(p,cond,S,Rd,Rn,Rm,sh,Rs) orc_arm_emit_dp(p,3,cond,ORC_ARM_DP_RSB,S,Rd,Rn,Rm,sh,Rs)
|
|
276
|
-
#define orc_arm_emit_add_rsr(p,cond,S,Rd,Rn,Rm,sh,Rs) orc_arm_emit_dp(p,3,cond,ORC_ARM_DP_ADD,S,Rd,Rn,Rm,sh,Rs)
|
|
277
|
-
#define orc_arm_emit_adc_rsr(p,cond,S,Rd,Rn,Rm,sh,Rs) orc_arm_emit_dp(p,3,cond,ORC_ARM_DP_ADC,S,Rd,Rn,Rm,sh,Rs)
|
|
278
|
-
#define orc_arm_emit_sbc_rsr(p,cond,S,Rd,Rn,Rm,sh,Rs) orc_arm_emit_dp(p,3,cond,ORC_ARM_DP_SBC,S,Rd,Rn,Rm,sh,Rs)
|
|
279
|
-
#define orc_arm_emit_rsc_rsr(p,cond,S,Rd,Rn,Rm,sh,Rs) orc_arm_emit_dp(p,3,cond,ORC_ARM_DP_RSC,S,Rd,Rn,Rm,sh,Rs)
|
|
280
|
-
#define orc_arm_emit_tst_rsr(p,cond,Rn,Rm,sh,Rs) orc_arm_emit_dp(p,3,cond,ORC_ARM_DP_TST,1, 0,Rn,Rm,sh,Rs)
|
|
281
|
-
#define orc_arm_emit_teq_rsr(p,cond,Rn,Rm,sh,Rs) orc_arm_emit_dp(p,3,cond,ORC_ARM_DP_TEQ,1, 0,Rn,Rm,sh,Rs)
|
|
282
|
-
#define orc_arm_emit_cmp_rsr(p,cond,Rn,Rm,sh,Rs) orc_arm_emit_dp(p,3,cond,ORC_ARM_DP_CMP,1, 0,Rn,Rm,sh,Rs)
|
|
283
|
-
#define orc_arm_emit_cmn_rsr(p,cond,Rn,Rm,sh,Rs) orc_arm_emit_dp(p,3,cond,ORC_ARM_DP_CMN,1, 0,Rn,Rm,sh,Rs)
|
|
284
|
-
#define orc_arm_emit_orr_rsr(p,cond,S,Rd,Rn,Rm,sh,Rs) orc_arm_emit_dp(p,3,cond,ORC_ARM_DP_ORR,S,Rd,Rn,Rm,sh,Rs)
|
|
285
|
-
#define orc_arm_emit_mov_rsr(p,cond,S,Rd,Rm,sh,Rs) orc_arm_emit_dp(p,3,cond,ORC_ARM_DP_MOV,S,Rd, 0,Rm,sh,Rs)
|
|
286
|
-
#define orc_arm_emit_bic_rsr(p,cond,S,Rd,Rn,Rm,sh,Rs) orc_arm_emit_dp(p,3,cond,ORC_ARM_DP_BIC,S,Rd,Rn,Rm,sh,Rs)
|
|
287
|
-
#define orc_arm_emit_mvn_rsr(p,cond,S,Rd,Rm,sh,Rs) orc_arm_emit_dp(p,3,cond,ORC_ARM_DP_MVN,S,Rd, 0,Rm,sh,Rs)
|
|
288
|
-
|
|
289
|
-
/* <op>{<cond>}{s} {<Rd>,} <Rn>, <Rm>, RRX */
|
|
290
|
-
#define orc_arm_emit_and_rrx(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,4,cond,ORC_ARM_DP_AND,S,Rd,Rn,Rm,0,0)
|
|
291
|
-
#define orc_arm_emit_eor_rrx(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,4,cond,ORC_ARM_DP_EOR,S,Rd,Rn,Rm,0,0)
|
|
292
|
-
#define orc_arm_emit_sub_rrx(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,4,cond,ORC_ARM_DP_SUB,S,Rd,Rn,Rm,0,0)
|
|
293
|
-
#define orc_arm_emit_rsb_rrx(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,4,cond,ORC_ARM_DP_RSB,S,Rd,Rn,Rm,0,0)
|
|
294
|
-
#define orc_arm_emit_add_rrx(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,4,cond,ORC_ARM_DP_ADD,S,Rd,Rn,Rm,0,0)
|
|
295
|
-
#define orc_arm_emit_adc_rrx(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,4,cond,ORC_ARM_DP_ADC,S,Rd,Rn,Rm,0,0)
|
|
296
|
-
#define orc_arm_emit_sbc_rrx(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,4,cond,ORC_ARM_DP_SBC,S,Rd,Rn,Rm,0,0)
|
|
297
|
-
#define orc_arm_emit_rsc_rrx(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,4,cond,ORC_ARM_DP_RSC,S,Rd,Rn,Rm,0,0)
|
|
298
|
-
#define orc_arm_emit_tst_rrx(p,cond,Rn,Rm) orc_arm_emit_dp(p,4,cond,ORC_ARM_DP_TST,1, 0,Rn,Rm,0,0)
|
|
299
|
-
#define orc_arm_emit_teq_rrx(p,cond,Rn,Rm) orc_arm_emit_dp(p,4,cond,ORC_ARM_DP_TEQ,1, 0,Rn,Rm,0,0)
|
|
300
|
-
#define orc_arm_emit_cmp_rrx(p,cond,Rn,Rm) orc_arm_emit_dp(p,4,cond,ORC_ARM_DP_CMP,1, 0,Rn,Rm,0,0)
|
|
301
|
-
#define orc_arm_emit_cmn_rrx(p,cond,Rn,Rm) orc_arm_emit_dp(p,4,cond,ORC_ARM_DP_CMN,1, 0,Rn,Rm,0,0)
|
|
302
|
-
#define orc_arm_emit_orr_rrx(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,4,cond,ORC_ARM_DP_ORR,S,Rd,Rn,Rm,0,0)
|
|
303
|
-
#define orc_arm_emit_mov_rrx(p,cond,S,Rd,Rm) orc_arm_emit_dp(p,4,cond,ORC_ARM_DP_MOV,S,Rd, 0,Rm,0,0)
|
|
304
|
-
#define orc_arm_emit_bic_rrx(p,cond,S,Rd,Rn,Rm) orc_arm_emit_dp(p,4,cond,ORC_ARM_DP_BIC,S,Rd,Rn,Rm,0,0)
|
|
305
|
-
#define orc_arm_emit_mvn_rrx(p,cond,S,Rd,Rm) orc_arm_emit_dp(p,4,cond,ORC_ARM_DP_MVN,S,Rd, 0,Rm,0,0)
|
|
306
|
-
|
|
307
|
-
/* parallel instructions */
|
|
308
|
-
#define orc_arm_emit_sadd16(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,0,0,cond,Rd,Rn,Rm)
|
|
309
|
-
#define orc_arm_emit_qadd16(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,0,1,cond,Rd,Rn,Rm)
|
|
310
|
-
#define orc_arm_emit_shadd16(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,0,2,cond,Rd,Rn,Rm)
|
|
311
|
-
#define orc_arm_emit_uadd16(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,0,3,cond,Rd,Rn,Rm)
|
|
312
|
-
#define orc_arm_emit_uqadd16(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,0,4,cond,Rd,Rn,Rm)
|
|
313
|
-
#define orc_arm_emit_uhadd16(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,0,5,cond,Rd,Rn,Rm)
|
|
314
|
-
|
|
315
|
-
#define orc_arm_emit_saddsubx(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,1,0,cond,Rd,Rn,Rm)
|
|
316
|
-
#define orc_arm_emit_qaddsubx(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,1,1,cond,Rd,Rn,Rm)
|
|
317
|
-
#define orc_arm_emit_shaddsubx(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,1,2,cond,Rd,Rn,Rm)
|
|
318
|
-
#define orc_arm_emit_uaddsubx(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,1,3,cond,Rd,Rn,Rm)
|
|
319
|
-
#define orc_arm_emit_uqaddsubx(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,1,4,cond,Rd,Rn,Rm)
|
|
320
|
-
#define orc_arm_emit_uhaddsubx(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,1,5,cond,Rd,Rn,Rm)
|
|
321
|
-
|
|
322
|
-
#define orc_arm_emit_ssubaddx(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,2,0,cond,Rd,Rn,Rm)
|
|
323
|
-
#define orc_arm_emit_qsubaddx(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,2,1,cond,Rd,Rn,Rm)
|
|
324
|
-
#define orc_arm_emit_shsubaddx(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,2,2,cond,Rd,Rn,Rm)
|
|
325
|
-
#define orc_arm_emit_usubaddx(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,2,3,cond,Rd,Rn,Rm)
|
|
326
|
-
#define orc_arm_emit_uqsubaddx(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,2,4,cond,Rd,Rn,Rm)
|
|
327
|
-
#define orc_arm_emit_uhsubaddx(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,2,5,cond,Rd,Rn,Rm)
|
|
328
|
-
|
|
329
|
-
#define orc_arm_emit_ssub16(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,3,0,cond,Rd,Rn,Rm)
|
|
330
|
-
#define orc_arm_emit_qsub16(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,3,1,cond,Rd,Rn,Rm)
|
|
331
|
-
#define orc_arm_emit_shsub16(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,3,2,cond,Rd,Rn,Rm)
|
|
332
|
-
#define orc_arm_emit_usub16(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,3,3,cond,Rd,Rn,Rm)
|
|
333
|
-
#define orc_arm_emit_uqsub16(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,3,4,cond,Rd,Rn,Rm)
|
|
334
|
-
#define orc_arm_emit_uhsub16(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,3,5,cond,Rd,Rn,Rm)
|
|
335
|
-
|
|
336
|
-
#define orc_arm_emit_sadd8(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,4,0,cond,Rd,Rn,Rm)
|
|
337
|
-
#define orc_arm_emit_qadd8(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,4,1,cond,Rd,Rn,Rm)
|
|
338
|
-
#define orc_arm_emit_shadd8(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,4,2,cond,Rd,Rn,Rm)
|
|
339
|
-
#define orc_arm_emit_uadd8(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,4,3,cond,Rd,Rn,Rm)
|
|
340
|
-
#define orc_arm_emit_uqadd8(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,4,4,cond,Rd,Rn,Rm)
|
|
341
|
-
#define orc_arm_emit_uhadd8(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,4,5,cond,Rd,Rn,Rm)
|
|
342
|
-
|
|
343
|
-
#define orc_arm_emit_ssub8(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,5,0,cond,Rd,Rn,Rm)
|
|
344
|
-
#define orc_arm_emit_qsub8(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,5,1,cond,Rd,Rn,Rm)
|
|
345
|
-
#define orc_arm_emit_shsub8(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,5,2,cond,Rd,Rn,Rm)
|
|
346
|
-
#define orc_arm_emit_usub8(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,5,3,cond,Rd,Rn,Rm)
|
|
347
|
-
#define orc_arm_emit_uqsub8(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,5,4,cond,Rd,Rn,Rm)
|
|
348
|
-
#define orc_arm_emit_uhsub8(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,5,5,cond,Rd,Rn,Rm)
|
|
349
|
-
|
|
350
|
-
/* selection */
|
|
351
|
-
#define orc_arm_emit_sel(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,6,6,cond,Rd,Rn,Rm)
|
|
352
|
-
|
|
353
|
-
/* saturating add */
|
|
354
|
-
#define orc_arm_emit_qadd(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,7,7, cond,Rd,Rn,Rm)
|
|
355
|
-
#define orc_arm_emit_qsub(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,8,8, cond,Rd,Rn,Rm)
|
|
356
|
-
#define orc_arm_emit_qdadd(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,7,9, cond,Rd,Rn,Rm)
|
|
357
|
-
#define orc_arm_emit_qdsub(p,cond,Rd,Rn,Rm) orc_arm_emit_par(p,8,10,cond,Rd,Rn,Rm)
|
|
358
|
-
|
|
359
|
-
/* extend instructions */
|
|
360
|
-
/* with ROR #r8, r8 should be a multiple of 8 */
|
|
361
|
-
#define orc_arm_emit_sxtb16_r8(p,cond,Rd,Rm,r8) orc_arm_emit_xt(p,0, cond,Rd,15,Rm,r8)
|
|
362
|
-
#define orc_arm_emit_sxtb_r8(p,cond,Rd,Rm,r8) orc_arm_emit_xt(p,1, cond,Rd,15,Rm,r8)
|
|
363
|
-
#define orc_arm_emit_sxth_r8(p,cond,Rd,Rm,r8) orc_arm_emit_xt(p,2, cond,Rd,15,Rm,r8)
|
|
364
|
-
#define orc_arm_emit_uxtb16_r8(p,cond,Rd,Rm,r8) orc_arm_emit_xt(p,3, cond,Rd,15,Rm,r8)
|
|
365
|
-
#define orc_arm_emit_uxtb_r8(p,cond,Rd,Rm,r8) orc_arm_emit_xt(p,4, cond,Rd,15,Rm,r8)
|
|
366
|
-
#define orc_arm_emit_uxth_r8(p,cond,Rd,Rm,r8) orc_arm_emit_xt(p,5, cond,Rd,15,Rm,r8)
|
|
367
|
-
#define orc_arm_emit_sxtab16_r8(p,cond,Rd,Rn,Rm,r8) orc_arm_emit_xt(p,6, cond,Rd,Rn,Rm,r8)
|
|
368
|
-
#define orc_arm_emit_sxtab_r8(p,cond,Rd,Rn,Rm,r8) orc_arm_emit_xt(p,7, cond,Rd,Rn,Rm,r8)
|
|
369
|
-
#define orc_arm_emit_sxtah_r8(p,cond,Rd,Rn,Rm,r8) orc_arm_emit_xt(p,8, cond,Rd,Rn,Rm,r8)
|
|
370
|
-
#define orc_arm_emit_uxtab16_r8(p,cond,Rd,Rn,Rm,r8) orc_arm_emit_xt(p,9, cond,Rd,Rn,Rm,r8)
|
|
371
|
-
#define orc_arm_emit_uxtab_r8(p,cond,Rd,Rn,Rm,r8) orc_arm_emit_xt(p,10,cond,Rd,Rn,Rm,r8)
|
|
372
|
-
#define orc_arm_emit_uxtah_r8(p,cond,Rd,Rn,Rm,r8) orc_arm_emit_xt(p,11,cond,Rd,Rn,Rm,r8)
|
|
373
|
-
/* with out rotate */
|
|
374
|
-
#define orc_arm_emit_sxtb16(p,cond,Rd,Rm) orc_arm_emit_sxtb_r8(p,cond,Rd,Rm,0)
|
|
375
|
-
#define orc_arm_emit_sxtb(p,cond,Rd,Rm) orc_arm_emit_sxtb_r8(p,cond,Rd,Rm,0)
|
|
376
|
-
#define orc_arm_emit_sxth(p,cond,Rd,Rm) orc_arm_emit_sxtb_r8(p,cond,Rd,Rm,0)
|
|
377
|
-
#define orc_arm_emit_uxtb16(p,cond,Rd,Rm) orc_arm_emit_sxtb_r8(p,cond,Rd,Rm,0)
|
|
378
|
-
#define orc_arm_emit_uxtb(p,cond,Rd,Rm) orc_arm_emit_sxtb_r8(p,cond,Rd,Rm,0)
|
|
379
|
-
#define orc_arm_emit_uxth(p,cond,Rd,Rm) orc_arm_emit_sxtb_r8(p,cond,Rd,Rm,0)
|
|
380
|
-
#define orc_arm_emit_sxtab16(p,cond,Rd,Rn,Rm) orc_arm_emit_sxtb_r8(p,cond,Rd,Rm,0)
|
|
381
|
-
#define orc_arm_emit_sxtab(p,cond,Rd,Rn,Rm) orc_arm_emit_sxtb_r8(p,cond,Rd,Rm,0)
|
|
382
|
-
#define orc_arm_emit_sxtah(p,cond,Rd,Rn,Rm) orc_arm_emit_sxtb_r8(p,cond,Rd,Rm,0)
|
|
383
|
-
#define orc_arm_emit_uxtab16(p,cond,Rd,Rn,Rm) orc_arm_emit_sxtb_r8(p,cond,Rd,Rm,0)
|
|
384
|
-
#define orc_arm_emit_uxtab(p,cond,Rd,Rn,Rm) orc_arm_emit_sxtb_r8(p,cond,Rd,Rm,0)
|
|
385
|
-
#define orc_arm_emit_uxtah(p,cond,Rd,Rn,Rm) orc_arm_emit_sxtb_r8(p,cond,Rd,Rm,0)
|
|
386
|
-
|
|
387
|
-
/* misc instructions */
|
|
388
|
-
|
|
389
|
-
/* packing */
|
|
390
|
-
#define orc_arm_emit_pkhbt(p,cond,Rd,Rn,Rm) orc_arm_emit_pkh(p,0,cond,Rd,Rn,Rm,0)
|
|
391
|
-
#define orc_arm_emit_pkhtb(p,cond,Rd,Rn,Rm) orc_arm_emit_pkh(p,1,cond,Rd,Rn,Rm,0)
|
|
392
|
-
/* with [LSL|ASR] #imm */
|
|
393
|
-
#define orc_arm_emit_pkhbt_s(p,cond,Rd,Rn,Rm,lsl) orc_arm_emit_pkh(p,0,cond,Rd,Rn,Rm,lsl)
|
|
394
|
-
#define orc_arm_emit_pkhtb_s(p,cond,Rd,Rn,Rm,asr) orc_arm_emit_pkh(p,1,cond,Rd,Rn,Rm,asr)
|
|
395
|
-
|
|
396
|
-
/* saturation */
|
|
397
|
-
#define orc_arm_emit_ssat(p,cond,Rd,sat,Rm) orc_arm_emit_sat(p,0,cond,Rd,sat,Rm,0, 0)
|
|
398
|
-
#define orc_arm_emit_usat(p,cond,Rd,sat,Rm) orc_arm_emit_sat(p,1,cond,Rd,sat,Rm,0, 0)
|
|
399
|
-
#define orc_arm_emit_ssat_lsl(p,cond,Rd,sat,Rm,sh) orc_arm_emit_sat(p,0,cond,Rd,sat,Rm,sh,0)
|
|
400
|
-
#define orc_arm_emit_usat_lsl(p,cond,Rd,sat,Rm,sh) orc_arm_emit_sat(p,1,cond,Rd,sat,Rm,sh,0)
|
|
401
|
-
#define orc_arm_emit_ssat_asr(p,cond,Rd,sat,Rm,sh) orc_arm_emit_sat(p,0,cond,Rd,sat,Rm,sh,1)
|
|
402
|
-
#define orc_arm_emit_usat_asr(p,cond,Rd,sat,Rm,sh) orc_arm_emit_sat(p,1,cond,Rd,sat,Rm,sh,1)
|
|
403
|
-
#define orc_arm_emit_ssat16(p,cond,Rd,sat,Rm) orc_arm_emit_sat(p,2,cond,Rd,sat,Rm,0, 0)
|
|
404
|
-
#define orc_arm_emit_usat16(p,cond,Rd,sat,Rm) orc_arm_emit_sat(p,3,cond,Rd,sat,Rm,0, 0)
|
|
405
|
-
|
|
406
|
-
/* reversing */
|
|
407
|
-
#define orc_arm_emit_rev(p,cond,Rd,Rm) orc_arm_emit_rv (p,0,cond,Rd,Rm)
|
|
408
|
-
#define orc_arm_emit_rev16(p,cond,Rd,Rm) orc_arm_emit_rv (p,1,cond,Rd,Rm)
|
|
409
|
-
|
|
410
|
-
/** AArch64 */
|
|
411
|
-
|
|
412
|
-
ORC_API const char * orc_arm64_reg_name (int reg, OrcArm64RegBits bits);
|
|
413
|
-
ORC_API void orc_arm64_emit_am (OrcCompiler *p, OrcArm64RegBits bits, OrcArm64DP opcode,
|
|
414
|
-
OrcArm64Type type, int opt, int Rd, int Rn, int Rm, orc_uint64 val);
|
|
415
|
-
ORC_API void orc_arm64_emit_lg (OrcCompiler *p, OrcArm64RegBits bits, OrcArm64DP opcode,
|
|
416
|
-
OrcArm64Type type, int opt, int Rd, int Rn, int Rm, orc_uint64 val);
|
|
417
|
-
ORC_API void orc_arm64_emit_mov_wide (OrcCompiler *p, OrcArm64RegBits bits, int mov_op, int hw,
|
|
418
|
-
int Rd, orc_uint64 val);
|
|
419
|
-
ORC_API void orc_arm64_emit_sft (OrcCompiler *p, OrcArm64RegBits bits, OrcArmShift shift,
|
|
420
|
-
int Rd, int Rn, int Rm);
|
|
421
|
-
ORC_API void orc_arm64_emit_bfm (OrcCompiler *p, OrcArm64RegBits bits, OrcArm64DP opcode,
|
|
422
|
-
int Rd, int Rn, orc_uint32 immr, orc_uint32 imms);
|
|
423
|
-
ORC_API void orc_arm64_emit_extr (OrcCompiler *p, OrcArm64RegBits bits,
|
|
424
|
-
int Rd, int Rn, int Rm, orc_uint32 imm);
|
|
425
|
-
ORC_API void orc_arm64_emit_mem (OrcCompiler *p, OrcArm64RegBits bits, OrcArm64Mem opcode,
|
|
426
|
-
OrcArm64Type type, int opt, int Rt, int Rn, int Rm, orc_uint32 val);
|
|
427
|
-
ORC_API void orc_arm64_emit_mem_pair (OrcCompiler *p, OrcArm64RegBits bits, OrcArm64Mem opcode,
|
|
428
|
-
int opt, int Rt, int Rt2, int Rn, orc_int32 imm);
|
|
429
|
-
ORC_API void orc_arm64_emit_ret (OrcCompiler *p, int Rn);
|
|
430
|
-
/** @todo add arm64-specific helper functions if needed */
|
|
431
|
-
|
|
432
|
-
/** Data Procesing (DP) instructions */
|
|
433
|
-
|
|
434
|
-
/** ORC_ARM64_DP_ADD */
|
|
435
|
-
/** ORC_ARM64_TYPE_IMM */
|
|
436
|
-
#define orc_arm64_emit_add_imm(p,bits,Rd,Rn,imm) \
|
|
437
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADD,ORC_ARM64_TYPE_IMM,0,Rd,Rn,0,imm)
|
|
438
|
-
/** ORC_ARM64_TYPE_REG */
|
|
439
|
-
#define orc_arm64_emit_add(p,bits,Rd,Rn,Rm) \
|
|
440
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADD,ORC_ARM64_TYPE_REG,0,Rd,Rn,Rm,0)
|
|
441
|
-
#define orc_arm64_emit_add_lsl(p,bits,Rd,Rn,Rm,val) \
|
|
442
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADD,ORC_ARM64_TYPE_REG,ORC_ARM_LSL,Rd,Rn,Rm,val)
|
|
443
|
-
#define orc_arm64_emit_add_lsr(p,bits,Rd,Rn,Rm,val) \
|
|
444
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADD,ORC_ARM64_TYPE_REG,ORC_ARM_LSR,Rd,Rn,Rm,val)
|
|
445
|
-
#define orc_arm64_emit_add_asr(p,bits,Rd,Rn,Rm,val) \
|
|
446
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADD,ORC_ARM64_TYPE_REG,ORC_ARM_ASR,Rd,Rn,Rm,val)
|
|
447
|
-
#define orc_arm64_emit_add_ror(p,bits,Rd,Rn,Rm,val) \
|
|
448
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADD,ORC_ARM64_TYPE_REG,ORC_ARM_ROR,Rd,Rn,Rm,val)
|
|
449
|
-
/** ORC_ARM64_TYPE_EXT */
|
|
450
|
-
#define orc_arm64_emit_add_uxtb(p,bits,Rd,Rn,Rm,val) \
|
|
451
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADD,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTB,Rd,Rn,Rm,val)
|
|
452
|
-
#define orc_arm64_emit_add_uxth(p,bits,Rd,Rn,Rm,val) \
|
|
453
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADD,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTH,Rd,Rn,Rm,val)
|
|
454
|
-
#define orc_arm64_emit_add_uxtw(p,bits,Rd,Rn,Rm,val) \
|
|
455
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADD,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTW,Rd,Rn,Rm,val)
|
|
456
|
-
#define orc_arm64_emit_add_uxtx(p,bits,Rd,Rn,Rm,val) \
|
|
457
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADD,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTX,Rd,Rn,Rm,val)
|
|
458
|
-
#define orc_arm64_emit_add_sxtb(p,bits,Rd,Rn,Rm,val) \
|
|
459
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADD,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTB,Rd,Rn,Rm,val)
|
|
460
|
-
#define orc_arm64_emit_add_sxth(p,bits,Rd,Rn,Rm,val) \
|
|
461
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADD,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTH,Rd,Rn,Rm,val)
|
|
462
|
-
#define orc_arm64_emit_add_sxtw(p,bits,Rd,Rn,Rm,val) \
|
|
463
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADD,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTW,Rd,Rn,Rm,val)
|
|
464
|
-
#define orc_arm64_emit_add_sxtx(p,bits,Rd,Rn,Rm,val) \
|
|
465
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADD,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTX,Rd,Rn,Rm,val)
|
|
466
|
-
|
|
467
|
-
/** ORC_ARM64_DP_ADDS */
|
|
468
|
-
/** ORC_ARM64_TYPE_IMM */
|
|
469
|
-
#define orc_arm64_emit_adds_imm(p,bits,Rd,Rn,imm) \
|
|
470
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_IMM,0,Rd,Rn,0,imm)
|
|
471
|
-
/** ORC_ARM64_TYPE_REG */
|
|
472
|
-
#define orc_arm64_emit_adds(p,bits,Rd,Rn,Rm) \
|
|
473
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_REG,0,Rd,Rn,Rm,0)
|
|
474
|
-
#define orc_arm64_emit_adds_lsl(p,bits,Rd,Rn,Rm,val) \
|
|
475
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_REG,ORC_ARM_LSL,Rd,Rn,Rm,val)
|
|
476
|
-
#define orc_arm64_emit_adds_asr(p,bits,Rd,Rn,Rm,val) \
|
|
477
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_REG,ORC_ARM_ASR,Rd,Rn,Rm,val)
|
|
478
|
-
#define orc_arm64_emit_adds_ror(p,bits,Rd,Rn,Rm,val) \
|
|
479
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_REG,ORC_ARM_ROR,Rd,Rn,Rm,val)
|
|
480
|
-
/** ORC_ARM64_TYPE_EXT */
|
|
481
|
-
#define orc_arm64_emit_adds_uxtb(p,bits,Rd,Rn,Rm,val) \
|
|
482
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTB,Rd,Rn,Rm,val)
|
|
483
|
-
#define orc_arm64_emit_adds_uxth(p,bits,Rd,Rn,Rm,val) \
|
|
484
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTH,Rd,Rn,Rm,val)
|
|
485
|
-
#define orc_arm64_emit_adds_uxtw(p,bits,Rd,Rn,Rm,val) \
|
|
486
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTW,Rd,Rn,Rm,val)
|
|
487
|
-
#define orc_arm64_emit_adds_uxtx(p,bits,Rd,Rn,Rm,val) \
|
|
488
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTX,Rd,Rn,Rm,val)
|
|
489
|
-
#define orc_arm64_emit_adds_sxtb(p,bits,Rd,Rn,Rm,val) \
|
|
490
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTB,Rd,Rn,Rm,val)
|
|
491
|
-
#define orc_arm64_emit_adds_sxth(p,bits,Rd,Rn,Rm,val) \
|
|
492
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTH,Rd,Rn,Rm,val)
|
|
493
|
-
#define orc_arm64_emit_adds_sxtw(p,bits,Rd,Rn,Rm,val) \
|
|
494
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTW,Rd,Rn,Rm,val)
|
|
495
|
-
#define orc_arm64_emit_adds_sxtx(p,bits,Rd,Rn,Rm,val) \
|
|
496
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTX,Rd,Rn,Rm,val)
|
|
497
|
-
|
|
498
|
-
/** ORC_ARM64_DP_CMN (alias of ADDS) */
|
|
499
|
-
/** ORC_ARM64_TYPE_IMM */
|
|
500
|
-
#define orc_arm64_emit_cmn_imm(p,bits,Rn,imm) \
|
|
501
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_IMM,0,0,Rn,0,imm)
|
|
502
|
-
/** ORC_ARM64_TYPE_REG */
|
|
503
|
-
#define orc_arm64_emit_cmn(p,bits,Rn,Rm) \
|
|
504
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_REG,0,0,Rn,Rm,0)
|
|
505
|
-
#define orc_arm64_emit_cmn_lsl(p,bits,Rn,Rm,val) \
|
|
506
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_REG,ORC_ARM_LSL,0,Rn,Rm,val)
|
|
507
|
-
#define orc_arm64_emit_cmn_asr(p,bits,Rn,Rm,val) \
|
|
508
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_REG,ORC_ARM_ASR,0,Rn,Rm,val)
|
|
509
|
-
#define orc_arm64_emit_cmn_ror(p,bits,Rn,Rm,val) \
|
|
510
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_REG,ORC_ARM_ROR,0,Rn,Rm,val)
|
|
511
|
-
/** ORC_ARM64_TYPE_EXT */
|
|
512
|
-
#define orc_arm64_emit_cmn_uxtb(p,bits,Rn,Rm,val) \
|
|
513
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTB,0,Rn,Rm,val)
|
|
514
|
-
#define orc_arm64_emit_cmn_uxth(p,bits,Rn,Rm,val) \
|
|
515
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTH,0,Rn,Rm,val)
|
|
516
|
-
#define orc_arm64_emit_cmn_uxtw(p,bits,Rn,Rm,val) \
|
|
517
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTW,0,Rn,Rm,val)
|
|
518
|
-
#define orc_arm64_emit_cmn_uxtx(p,bits,Rn,Rm,val) \
|
|
519
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTX,0,Rn,Rm,val)
|
|
520
|
-
#define orc_arm64_emit_cmn_sxtb(p,bits,Rn,Rm,val) \
|
|
521
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTB,0,Rn,Rm,val)
|
|
522
|
-
#define orc_arm64_emit_cmn_sxth(p,bits,Rn,Rm,val) \
|
|
523
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTH,0,Rn,Rm,val)
|
|
524
|
-
#define orc_arm64_emit_cmn_sxtw(p,bits,Rn,Rm,val) \
|
|
525
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTW,0,Rn,Rm,val)
|
|
526
|
-
#define orc_arm64_emit_cmn_sxtx(p,bits,Rn,Rm,val) \
|
|
527
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_ADDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTX,0,Rn,Rm,val)
|
|
528
|
-
|
|
529
|
-
/** ORC_ARM64_DP_SUB */
|
|
530
|
-
/** ORC_ARM64_TYPE_IMM */
|
|
531
|
-
#define orc_arm64_emit_sub_imm(p,bits,Rd,Rn,imm) \
|
|
532
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUB,ORC_ARM64_TYPE_IMM,0,Rd,Rn,0,imm)
|
|
533
|
-
/** ORC_ARM64_TYPE_REG */
|
|
534
|
-
#define orc_arm64_emit_sub(p,bits,Rd,Rn,Rm) \
|
|
535
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUB,ORC_ARM64_TYPE_REG,0,Rd,Rn,Rm,0)
|
|
536
|
-
#define orc_arm64_emit_sub_lsl(p,bits,Rd,Rn,Rm,val) \
|
|
537
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUB,ORC_ARM64_TYPE_REG,ORC_ARM_LSL,Rd,Rn,Rm,val)
|
|
538
|
-
#define orc_arm64_emit_sub_asr(p,bits,Rd,Rn,Rm,val) \
|
|
539
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUB,ORC_ARM64_TYPE_REG,ORC_ARM_ASR,Rd,Rn,Rm,val)
|
|
540
|
-
#define orc_arm64_emit_sub_ror(p,bits,Rd,Rn,Rm,val) \
|
|
541
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUB,ORC_ARM64_TYPE_REG,ORC_ARM_ROR,Rd,Rn,Rm,val)
|
|
542
|
-
/** ORC_ARM64_TYPE_EXT */
|
|
543
|
-
#define orc_arm64_emit_sub_uxtb(p,bits,Rd,Rn,Rm,val) \
|
|
544
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUB,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTB,Rd,Rn,Rm,val)
|
|
545
|
-
#define orc_arm64_emit_sub_uxth(p,bits,Rd,Rn,Rm,val) \
|
|
546
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUB,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTH,Rd,Rn,Rm,val)
|
|
547
|
-
#define orc_arm64_emit_sub_uxtw(p,bits,Rd,Rn,Rm,val) \
|
|
548
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUB,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTW,Rd,Rn,Rm,val)
|
|
549
|
-
#define orc_arm64_emit_sub_uxtx(p,bits,Rd,Rn,Rm,val) \
|
|
550
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUB,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTX,Rd,Rn,Rm,val)
|
|
551
|
-
#define orc_arm64_emit_sub_sxtb(p,bits,Rd,Rn,Rm,val) \
|
|
552
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUB,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTB,Rd,Rn,Rm,val)
|
|
553
|
-
#define orc_arm64_emit_sub_sxth(p,bits,Rd,Rn,Rm,val) \
|
|
554
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUB,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTH,Rd,Rn,Rm,val)
|
|
555
|
-
#define orc_arm64_emit_sub_sxtw(p,bits,Rd,Rn,Rm,val) \
|
|
556
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUB,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTW,Rd,Rn,Rm,val)
|
|
557
|
-
#define orc_arm64_emit_sub_sxtx(p,bits,Rd,Rn,Rm,val) \
|
|
558
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUB,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTX,Rd,Rn,Rm,val)
|
|
559
|
-
|
|
560
|
-
/** ORC_ARM64_DP_SUBS */
|
|
561
|
-
/** ORC_ARM64_TYPE_IMM */
|
|
562
|
-
#define orc_arm64_emit_subs_imm(p,bits,Rd,Rn,imm) \
|
|
563
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_IMM,0,Rd,Rn,0,imm)
|
|
564
|
-
/** ORC_ARM64_TYPE_REG */
|
|
565
|
-
#define orc_arm64_emit_subs(p,bits,Rd,Rn,Rm) \
|
|
566
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_REG,0,Rd,Rn,Rm,0)
|
|
567
|
-
#define orc_arm64_emit_subs_lsl(p,bits,Rd,Rn,Rm,val) \
|
|
568
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_REG,ORC_ARM_LSL,Rd,Rn,Rm,val)
|
|
569
|
-
#define orc_arm64_emit_subs_asr(p,bits,Rd,Rn,Rm,val) \
|
|
570
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_REG,ORC_ARM_ASR,Rd,Rn,Rm,val)
|
|
571
|
-
#define orc_arm64_emit_subs_ror(p,bits,Rd,Rn,Rm,val) \
|
|
572
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_REG,ORC_ARM_ROR,Rd,Rn,Rm,val)
|
|
573
|
-
/** ORC_ARM64_TYPE_EXT */
|
|
574
|
-
#define orc_arm64_emit_subs_uxtb(p,bits,Rd,Rn,Rm,val) \
|
|
575
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTB,Rd,Rn,Rm,val)
|
|
576
|
-
#define orc_arm64_emit_subs_uxth(p,bits,Rd,Rn,Rm,val) \
|
|
577
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTH,Rd,Rn,Rm,val)
|
|
578
|
-
#define orc_arm64_emit_subs_uxtw(p,bits,Rd,Rn,Rm,val) \
|
|
579
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTW,Rd,Rn,Rm,val)
|
|
580
|
-
#define orc_arm64_emit_subs_uxtx(p,bits,Rd,Rn,Rm,val) \
|
|
581
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTX,Rd,Rn,Rm,val)
|
|
582
|
-
#define orc_arm64_emit_subs_sxtb(p,bits,Rd,Rn,Rm,val) \
|
|
583
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTB,Rd,Rn,Rm,val)
|
|
584
|
-
#define orc_arm64_emit_subs_sxth(p,bits,Rd,Rn,Rm,val) \
|
|
585
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTH,Rd,Rn,Rm,val)
|
|
586
|
-
#define orc_arm64_emit_subs_sxtw(p,bits,Rd,Rn,Rm,val) \
|
|
587
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTW,Rd,Rn,Rm,val)
|
|
588
|
-
#define orc_arm64_emit_subs_sxtx(p,bits,Rd,Rn,Rm,val) \
|
|
589
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTX,Rd,Rn,Rm,val)
|
|
590
|
-
|
|
591
|
-
/** ORC_ARM64_DP_CMP (alias of SUBS) */
|
|
592
|
-
/** ORC_ARM64_TYPE_IMM */
|
|
593
|
-
#define orc_arm64_emit_cmp_imm(p,bits,Rn,imm) \
|
|
594
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_IMM,0,0,Rn,0,imm)
|
|
595
|
-
/** ORC_ARM64_TYPE_REG */
|
|
596
|
-
#define orc_arm64_emit_cmp(p,bits,Rn,Rm) \
|
|
597
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_REG,0,0,Rn,Rm,0)
|
|
598
|
-
#define orc_arm64_emit_cmp_lsl(p,bits,Rn,Rm,val) \
|
|
599
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_REG,ORC_ARM_LSL,0,Rn,Rm,val)
|
|
600
|
-
#define orc_arm64_emit_cmp_asr(p,bits,Rn,Rm,val) \
|
|
601
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_REG,ORC_ARM_ASR,0,Rn,Rm,val)
|
|
602
|
-
#define orc_arm64_emit_cmp_ror(p,bits,Rn,Rm,val) \
|
|
603
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_REG,ORC_ARM_ROR,0,Rn,Rm,val)
|
|
604
|
-
/** ORC_ARM64_TYPE_EXT */
|
|
605
|
-
#define orc_arm64_emit_cmp_uxtb(p,bits,Rn,Rm,val) \
|
|
606
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTB,0,Rn,Rm,val)
|
|
607
|
-
#define orc_arm64_emit_cmp_uxth(p,bits,Rn,Rm,val) \
|
|
608
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTH,0,Rn,Rm,val)
|
|
609
|
-
#define orc_arm64_emit_cmp_uxtw(p,bits,Rn,Rm,val) \
|
|
610
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTW,0,Rn,Rm,val)
|
|
611
|
-
#define orc_arm64_emit_cmp_uxtx(p,bits,Rn,Rm,val) \
|
|
612
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTX,0,Rn,Rm,val)
|
|
613
|
-
#define orc_arm64_emit_cmp_sxtb(p,bits,Rn,Rm,val) \
|
|
614
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTB,0,Rn,Rm,val)
|
|
615
|
-
#define orc_arm64_emit_cmp_sxth(p,bits,Rn,Rm,val) \
|
|
616
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTH,0,Rn,Rm,val)
|
|
617
|
-
#define orc_arm64_emit_cmp_sxtw(p,bits,Rn,Rm,val) \
|
|
618
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTW,0,Rn,Rm,val)
|
|
619
|
-
#define orc_arm64_emit_cmp_sxtx(p,bits,Rn,Rm,val) \
|
|
620
|
-
orc_arm64_emit_am(p,bits,ORC_ARM64_DP_SUBS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTX,0,Rn,Rm,val)
|
|
621
|
-
|
|
622
|
-
/** ORC_ARM64_DP_AND */
|
|
623
|
-
/** ORC_ARM64_TYPE_IMM */
|
|
624
|
-
#define orc_arm64_emit_and_imm(p,bits,Rd,Rn,imm) \
|
|
625
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_AND,ORC_ARM64_TYPE_IMM,0,Rd,Rn,0,imm)
|
|
626
|
-
/** ORC_ARM64_TYPE_REG */
|
|
627
|
-
#define orc_arm64_emit_and(p,bits,Rd,Rn,Rm) \
|
|
628
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_AND,ORC_ARM64_TYPE_REG,0,Rd,Rn,0,0)
|
|
629
|
-
#define orc_arm64_emit_and_lsl(p,bits,Rd,Rn,Rm,val) \
|
|
630
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_AND,ORC_ARM64_TYPE_REG,ORC_ARM_LSL,Rd,Rn,Rm,val)
|
|
631
|
-
#define orc_arm64_emit_and_asr(p,bits,Rd,Rn,Rm,val) \
|
|
632
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_AND,ORC_ARM64_TYPE_REG,ORC_ARM_ASR,Rd,Rn,Rm,val)
|
|
633
|
-
#define orc_arm64_emit_and_ror(p,bits,Rd,Rn,Rm,val) \
|
|
634
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_AND,ORC_ARM64_TYPE_REG,ORC_ARM_ROR,Rd,Rn,Rm,val)
|
|
635
|
-
/** ORC_ARM64_TYPE_EXT */
|
|
636
|
-
#define orc_arm64_emit_and_uxtb(p,bits,Rd,Rn,Rm,val) \
|
|
637
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_AND,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTB,Rd,Rn,Rm,val)
|
|
638
|
-
#define orc_arm64_emit_and_uxth(p,bits,Rd,Rn,Rm,val) \
|
|
639
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_AND,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTH,Rd,Rn,Rm,val)
|
|
640
|
-
#define orc_arm64_emit_and_uxtw(p,bits,Rd,Rn,Rm,val) \
|
|
641
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_AND,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTW,Rd,Rn,Rm,val)
|
|
642
|
-
#define orc_arm64_emit_and_uxtx(p,bits,Rd,Rn,Rm,val) \
|
|
643
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_AND,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTX,Rd,Rn,Rm,val)
|
|
644
|
-
#define orc_arm64_emit_and_sxtb(p,bits,Rd,Rn,Rm,val) \
|
|
645
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_AND,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTB,Rd,Rn,Rm,val)
|
|
646
|
-
#define orc_arm64_emit_and_sxth(p,bits,Rd,Rn,Rm,val) \
|
|
647
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_AND,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTH,Rd,Rn,Rm,val)
|
|
648
|
-
#define orc_arm64_emit_and_sxtw(p,bits,Rd,Rn,Rm,val) \
|
|
649
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_AND,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTW,Rd,Rn,Rm,val)
|
|
650
|
-
#define orc_arm64_emit_and_sxtx(p,bits,Rd,Rn,Rm,val) \
|
|
651
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_AND,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTX,Rd,Rn,Rm,val)
|
|
652
|
-
|
|
653
|
-
/** ORC_ARM64_DP_ORR */
|
|
654
|
-
/** ORC_ARM64_TYPE_IMM */
|
|
655
|
-
#define orc_arm64_emit_orr_imm(p,bits,Rd,Rn,imm) \
|
|
656
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ORR,ORC_ARM64_TYPE_IMM,0,Rd,Rn,0,imm)
|
|
657
|
-
/** ORC_ARM64_TYPE_REG */
|
|
658
|
-
#define orc_arm64_emit_orr(p,bits,Rd,Rn,Rm) \
|
|
659
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ORR,ORC_ARM64_TYPE_REG,0,Rd,Rn,Rm,0)
|
|
660
|
-
#define orc_arm64_emit_orr_lsl(p,bits,Rd,Rn,Rm,val) \
|
|
661
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ORR,ORC_ARM64_TYPE_REG,ORC_ARM_LSL,Rd,Rn,Rm,val)
|
|
662
|
-
#define orc_arm64_emit_orr_asr(p,bits,Rd,Rn,Rm,val) \
|
|
663
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ORR,ORC_ARM64_TYPE_REG,ORC_ARM_ASR,Rd,Rn,Rm,val)
|
|
664
|
-
#define orc_arm64_emit_orr_ror(p,bits,Rd,Rn,Rm,val) \
|
|
665
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ORR,ORC_ARM64_TYPE_REG,ORC_ARM_ROR,Rd,Rn,Rm,val)
|
|
666
|
-
/** ORC_ARM64_TYPE_EXT */
|
|
667
|
-
#define orc_arm64_emit_orr_uxtb(p,bits,Rd,Rn,Rm,val) \
|
|
668
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ORR,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTB,Rd,Rn,Rm,val)
|
|
669
|
-
#define orc_arm64_emit_orr_uxth(p,bits,Rd,Rn,Rm,val) \
|
|
670
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ORR,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTH,Rd,Rn,Rm,val)
|
|
671
|
-
#define orc_arm64_emit_orr_uxtw(p,bits,Rd,Rn,Rm,val) \
|
|
672
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ORR,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTW,Rd,Rn,Rm,val)
|
|
673
|
-
#define orc_arm64_emit_orr_uxtx(p,bits,Rd,Rn,Rm,val) \
|
|
674
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ORR,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTX,Rd,Rn,Rm,val)
|
|
675
|
-
#define orc_arm64_emit_orr_sxtb(p,bits,Rd,Rn,Rm,val) \
|
|
676
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ORR,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTB,Rd,Rn,Rm,val)
|
|
677
|
-
#define orc_arm64_emit_orr_sxth(p,bits,Rd,Rn,Rm,val) \
|
|
678
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ORR,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTH,Rd,Rn,Rm,val)
|
|
679
|
-
#define orc_arm64_emit_orr_sxtw(p,bits,Rd,Rn,Rm,val) \
|
|
680
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ORR,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTW,Rd,Rn,Rm,val)
|
|
681
|
-
#define orc_arm64_emit_orr_sxtx(p,bits,Rd,Rn,Rm,val) \
|
|
682
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ORR,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTX,Rd,Rn,Rm,val)
|
|
683
|
-
|
|
684
|
-
/** ORC_ARM64_DP_MOV (alias of ROR, in case of imm) */
|
|
685
|
-
#define orc_arm64_emit_mov_imm(p,bits,Rd,imm) \
|
|
686
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ORR,ORC_ARM64_TYPE_IMM,0,Rd,0,0,imm)
|
|
687
|
-
#define orc_arm64_emit_mov_uimm(p,bits,Rd,imm) \
|
|
688
|
-
orc_arm64_emit_movz(p,bits,0,Rd,imm)
|
|
689
|
-
#define orc_arm64_emit_movn(p,bits,shift,Rd,imm) \
|
|
690
|
-
orc_arm64_emit_mov_wide(p,bits,0,shift,Rd,imm)
|
|
691
|
-
#define orc_arm64_emit_movz(p,bits,shift,Rd,imm) \
|
|
692
|
-
orc_arm64_emit_mov_wide(p,bits,2,shift,Rd,imm)
|
|
693
|
-
#define orc_arm64_emit_movk(p,bits,shift,Rd,imm) \
|
|
694
|
-
orc_arm64_emit_mov_wide(p,bits,3,shift,Rd,imm)
|
|
695
|
-
|
|
696
|
-
/** ORC_ARM64_TYPE_REG */
|
|
697
|
-
#define orc_arm64_emit_mov(p,bits,Rd,Rm) \
|
|
698
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ORR,ORC_ARM64_TYPE_REG,0,Rd,0,Rm,0)
|
|
699
|
-
|
|
700
|
-
/** ORC_ARM64_DP_EOR */
|
|
701
|
-
/** ORC_ARM64_TYPE_IMM */
|
|
702
|
-
#define orc_arm64_emit_eor_imm(p,bits,Rd,Rn,imm) \
|
|
703
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_EOR,ORC_ARM64_TYPE_IMM,0,Rd,Rn,0,imm)
|
|
704
|
-
/** ORC_ARM64_TYPE_REG */
|
|
705
|
-
#define orc_arm64_emit_eor(p,bits,Rd,Rn,Rm) \
|
|
706
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_EOR,ORC_ARM64_TYPE_REG,0,Rd,Rn,Rm,0)
|
|
707
|
-
#define orc_arm64_emit_eor_lsl(p,bits,Rd,Rn,Rm,val) \
|
|
708
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_EOR,ORC_ARM64_TYPE_REG,ORC_ARM_LSL,Rd,Rn,Rm,val)
|
|
709
|
-
#define orc_arm64_emit_eor_asr(p,bits,Rd,Rn,Rm,val) \
|
|
710
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_EOR,ORC_ARM64_TYPE_REG,ORC_ARM_ASR,Rd,Rn,Rm,val)
|
|
711
|
-
#define orc_arm64_emit_eor_ror(p,bits,Rd,Rn,Rm,val) \
|
|
712
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_EOR,ORC_ARM64_TYPE_REG,ORC_ARM_ROR,Rd,Rn,Rm,val)
|
|
713
|
-
/** ORC_ARM64_TYPE_EXT */
|
|
714
|
-
#define orc_arm64_emit_eor_uxtb(p,bits,Rd,Rn,Rm,val) \
|
|
715
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_EOR,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTB,Rd,Rn,Rm,val)
|
|
716
|
-
#define orc_arm64_emit_eor_uxth(p,bits,Rd,Rn,Rm,val) \
|
|
717
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_EOR,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTH,Rd,Rn,Rm,val)
|
|
718
|
-
#define orc_arm64_emit_eor_uxtw(p,bits,Rd,Rn,Rm,val) \
|
|
719
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_EOR,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTW,Rd,Rn,Rm,val)
|
|
720
|
-
#define orc_arm64_emit_eor_uxtx(p,bits,Rd,Rn,Rm,val) \
|
|
721
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_EOR,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTX,Rd,Rn,Rm,val)
|
|
722
|
-
#define orc_arm64_emit_eor_sxtb(p,bits,Rd,Rn,Rm,val) \
|
|
723
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_EOR,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTB,Rd,Rn,Rm,val)
|
|
724
|
-
#define orc_arm64_emit_eor_sxth(p,bits,Rd,Rn,Rm,val) \
|
|
725
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_EOR,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTH,Rd,Rn,Rm,val)
|
|
726
|
-
#define orc_arm64_emit_eor_sxtw(p,bits,Rd,Rn,Rm,val) \
|
|
727
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_EOR,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTW,Rd,Rn,Rm,val)
|
|
728
|
-
#define orc_arm64_emit_eor_sxtx(p,bits,Rd,Rn,Rm,val) \
|
|
729
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_EOR,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTX,Rd,Rn,Rm,val)
|
|
730
|
-
|
|
731
|
-
/** ORC_ARM64_DP_ANDS */
|
|
732
|
-
/** ORC_ARM64_TYPE_IMM */
|
|
733
|
-
#define orc_arm64_emit_ands_imm(p,bits,Rd,Rn,imm) \
|
|
734
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_IMM,0,Rd,Rn,0,imm)
|
|
735
|
-
/** ORC_ARM64_TYPE_REG */
|
|
736
|
-
#define orc_arm64_emit_ands(p,bits,Rd,Rn,Rm) \
|
|
737
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_REG,0,Rd,Rn,Rm,0)
|
|
738
|
-
#define orc_arm64_emit_ands_lsl(p,bits,Rd,Rn,Rm,val) \
|
|
739
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_REG,ORC_ARM_LSL,Rd,Rn,Rm,val)
|
|
740
|
-
#define orc_arm64_emit_ands_asr(p,bits,Rd,Rn,Rm,val) \
|
|
741
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_REG,ORC_ARM_ASR,Rd,Rn,Rm,val)
|
|
742
|
-
#define orc_arm64_emit_ands_ror(p,bits,Rd,Rn,Rm,val) \
|
|
743
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_REG,ORC_ARM_ROR,Rd,Rn,Rm,val)
|
|
744
|
-
/** ORC_ARM64_TYPE_EXT */
|
|
745
|
-
#define orc_arm64_emit_ands_uxtb(p,bits,Rd,Rn,Rm,val) \
|
|
746
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTB,Rd,Rn,Rm,val)
|
|
747
|
-
#define orc_arm64_emit_ands_uxth(p,bits,Rd,Rn,Rm,val) \
|
|
748
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTH,Rd,Rn,Rm,val)
|
|
749
|
-
#define orc_arm64_emit_ands_uxtw(p,bits,Rd,Rn,Rm,val) \
|
|
750
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTW,Rd,Rn,Rm,val)
|
|
751
|
-
#define orc_arm64_emit_ands_uxtx(p,bits,Rd,Rn,Rm,val) \
|
|
752
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTX,Rd,Rn,Rm,val)
|
|
753
|
-
#define orc_arm64_emit_ands_sxtb(p,bits,Rd,Rn,Rm,val) \
|
|
754
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTB,Rd,Rn,Rm,val)
|
|
755
|
-
#define orc_arm64_emit_ands_sxth(p,bits,Rd,Rn,Rm,val) \
|
|
756
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTH,Rd,Rn,Rm,val)
|
|
757
|
-
#define orc_arm64_emit_ands_sxtw(p,bits,Rd,Rn,Rm,val) \
|
|
758
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTW,Rd,Rn,Rm,val)
|
|
759
|
-
#define orc_arm64_emit_ands_sxtx(p,bits,Rd,Rn,Rm,val) \
|
|
760
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTX,Rd,Rn,Rm,val)
|
|
761
|
-
|
|
762
|
-
/** ORC_ARM64_DP_TST (alias of ANDS) */
|
|
763
|
-
/** ORC_ARM64_TYPE_IMM */
|
|
764
|
-
#define orc_arm64_emit_tst_imm(p,bits,Rn,imm) \
|
|
765
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_IMM,0,0,Rn,0,imm)
|
|
766
|
-
/** ORC_ARM64_TYPE_REG */
|
|
767
|
-
#define orc_arm64_emit_tst(p,bits,Rn,Rm) \
|
|
768
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_REG,0,0,Rn,Rm,0)
|
|
769
|
-
#define orc_arm64_emit_tst_lsl(p,bits,Rn,Rm,val) \
|
|
770
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_REG,ORC_ARM_LSL,0,Rn,Rm,val)
|
|
771
|
-
#define orc_arm64_emit_tst_asr(p,bits,Rn,Rm,val) \
|
|
772
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_REG,ORC_ARM_ASR,0,Rn,Rm,val)
|
|
773
|
-
#define orc_arm64_emit_tst_ror(p,bits,Rn,Rm,val) \
|
|
774
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_REG,ORC_ARM_ROR,0,Rn,Rm,val)
|
|
775
|
-
/** ORC_ARM64_TYPE_EXT */
|
|
776
|
-
#define orc_arm64_emit_tst_uxtb(p,bits,Rn,Rm,val) \
|
|
777
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTB,0,Rn,Rm,val)
|
|
778
|
-
#define orc_arm64_emit_tst_uxth(p,bits,Rn,Rm,val) \
|
|
779
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTH,0,Rn,Rm,val)
|
|
780
|
-
#define orc_arm64_emit_tst_uxtw(p,bits,Rn,Rm,val) \
|
|
781
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTW,0,Rn,Rm,val)
|
|
782
|
-
#define orc_arm64_emit_tst_uxtx(p,bits,Rn,Rm,val) \
|
|
783
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_UXTX,0,Rn,Rm,val)
|
|
784
|
-
#define orc_arm64_emit_tst_sxtb(p,bits,Rn,Rm,val) \
|
|
785
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTB,0,Rn,Rm,val)
|
|
786
|
-
#define orc_arm64_emit_tst_sxth(p,bits,Rn,Rm,val) \
|
|
787
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTH,0,Rn,Rm,val)
|
|
788
|
-
#define orc_arm64_emit_tst_sxtw(p,bits,Rn,Rm,val) \
|
|
789
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTW,0,Rn,Rm,val)
|
|
790
|
-
#define orc_arm64_emit_tst_sxtx(p,bits,Rn,Rm,val) \
|
|
791
|
-
orc_arm64_emit_lg(p,bits,ORC_ARM64_DP_ANDS,ORC_ARM64_TYPE_EXT,ORC_ARM64_SXTX,0,Rn,Rm,val)
|
|
792
|
-
|
|
793
|
-
/** ORC_ARM64_DP_LSL/ASR/ASR/ROR */
|
|
794
|
-
/** ORC_ARM64_TYPE_IMM; aliases of ORC_ARM64_DP_SBFM,UBFM,EXTR */
|
|
795
|
-
#define orc_arm64_emit_lsl_imm(p,bits,Rd,Rn,imm) \
|
|
796
|
-
orc_arm64_emit_bfm(p,bits,ORC_ARM64_DP_UBFM,Rd,Rn,imm,imm-1)
|
|
797
|
-
#define orc_arm64_emit_lsr_imm(p,bits,Rd,Rn,imm) \
|
|
798
|
-
orc_arm64_emit_bfm(p,bits,ORC_ARM64_DP_UBFM,Rd,Rn,imm,0x1f)
|
|
799
|
-
#define orc_arm64_emit_asr_imm(p,bits,Rd,Rn,imm) \
|
|
800
|
-
orc_arm64_emit_bfm(p,bits,ORC_ARM64_DP_SBFM,Rd,Rn,imm,0x1f)
|
|
801
|
-
#define orc_arm64_emit_ror_imm(p,bits,Rd,Rn,imm) \
|
|
802
|
-
orc_arm64_emit_extr(p,bits,Rd,Rn,Rn,imm)
|
|
803
|
-
/** ORC_ARM64_TYPE_REG */
|
|
804
|
-
#define orc_arm64_emit_lsl(p,bits,Rd,Rn,Rm) \
|
|
805
|
-
orc_arm64_emit_sft(p,bits,ORC_ARM64_DP_LSL,Rd,Rn,Rm)
|
|
806
|
-
#define orc_arm64_emit_lsr(p,bits,Rd,Rn,Rm) \
|
|
807
|
-
orc_arm64_emit_sft(p,bits,ORC_ARM64_DP_LSR,Rd,Rn,Rm)
|
|
808
|
-
#define orc_arm64_emit_asr(p,bits,Rd,Rn,Rm) \
|
|
809
|
-
orc_arm64_emit_sft(p,bits,ORC_ARM64_DP_ASR,Rd,Rn,Rm)
|
|
810
|
-
#define orc_arm64_emit_ror(p,bits,Rd,Rn,Rm) \
|
|
811
|
-
orc_arm64_emit_sft(p,bits,ORC_ARM64_DP_ROR,Rd,Rn,Rm)
|
|
812
|
-
|
|
813
|
-
/** memory access instructions */
|
|
814
|
-
|
|
815
|
-
/** ORC_ARM64_MEM_STR */
|
|
816
|
-
/** ORC_ARM64_TYPE_REG */
|
|
817
|
-
#define orc_arm64_emit_store_reg(p,b,Rt,Rn,imm) \
|
|
818
|
-
orc_arm64_emit_mem(p,b,ORC_ARM64_MEM_STR,ORC_ARM64_TYPE_REG,0,Rt,Rn,0,imm)
|
|
819
|
-
#define orc_arm64_emit_store_pre(p,b,Rt,Rn,imm) \
|
|
820
|
-
orc_arm64_emit_mem(p,b,ORC_ARM64_MEM_STR,ORC_ARM64_TYPE_REG,1,Rt,Rn,0,imm)
|
|
821
|
-
#define orc_arm64_emit_store_post(p,b,Rt,Rn,imm) \
|
|
822
|
-
orc_arm64_emit_mem(p,b,ORC_ARM64_MEM_STR,ORC_ARM64_TYPE_REG,2,Rt,Rn,0,imm)
|
|
823
|
-
/** ORC_ARM64_TYPE_EXT */
|
|
824
|
-
#define orc_arm64_emit_store_uxtw(p,b,Rt,Rn,Rm,imm) \
|
|
825
|
-
orc_arm64_emit_mem(p,b,ORC_ARM64_MEM_STR,ORC_ARM64_TYPE_EXT,ORC_ARM64_EXTEND_UXTW,Rt,Rn,Rm,imm)
|
|
826
|
-
#define orc_arm64_emit_store_lsl(p,b,Rt,Rn,Rm,imm) \
|
|
827
|
-
orc_arm64_emit_mem(p,b,ORC_ARM64_MEM_STR,ORC_ARM64_TYPE_EXT,ORC_ARM64_EXTEND_UXTX,Rt,Rn,Rm,imm)
|
|
828
|
-
#define orc_arm64_emit_store_sxtw(p,b,Rt,Rn,Rm,imm) \
|
|
829
|
-
orc_arm64_emit_mem(p,b,ORC_ARM64_MEM_STR,ORC_ARM64_TYPE_EXT,ORC_ARM64_EXTEND_SXTW,Rt,Rn,Rm,imm)
|
|
830
|
-
#define orc_arm64_emit_store_sxtx(p,b,Rt,Rn,Rm,imm) \
|
|
831
|
-
orc_arm64_emit_mem(p,b,ORC_ARM64_MEM_STR,ORC_ARM64_TYPE_EXT,ORC_ARM64_EXTEND_SXTX,Rt,Rn,Rm,imm)
|
|
832
|
-
|
|
833
|
-
/** ORC_ARM64_MEM_LDR */
|
|
834
|
-
/** ORC_ARM64_TYPE_IMM */
|
|
835
|
-
#define orc_arm64_emit_load_imm(p,b,Rt,imm) \
|
|
836
|
-
orc_arm64_emit_mem(p,b,ORC_ARM64_MEM_LDR,ORC_ARM64_TYPE_IMM,0,Rt,0,0,imm)
|
|
837
|
-
#define orc_arm64_emit_load_label(p,b,Rt,label) \
|
|
838
|
-
orc_arm64_emit_mem(p,b,ORC_ARM64_MEM_LDR,ORC_ARM64_TYPE_IMM,label,Rt,0,0,0)
|
|
839
|
-
/** ORC_ARM64_TYPE_REG */
|
|
840
|
-
#define orc_arm64_emit_load_reg(p,b,Rt,Rn,imm) \
|
|
841
|
-
orc_arm64_emit_mem(p,b,ORC_ARM64_MEM_LDR,ORC_ARM64_TYPE_REG,0,Rt,Rn,0,imm)
|
|
842
|
-
#define orc_arm64_emit_load_pre(p,b,Rt,Rn,imm) \
|
|
843
|
-
orc_arm64_emit_mem(p,b,ORC_ARM64_MEM_LDR,ORC_ARM64_TYPE_REG,1,Rt,Rn,0,imm)
|
|
844
|
-
#define orc_arm64_emit_load_post(p,b,Rt,Rn,imm) \
|
|
845
|
-
orc_arm64_emit_mem(p,b,ORC_ARM64_MEM_LDR,ORC_ARM64_TYPE_REG,2,Rt,Rn,0,imm)
|
|
846
|
-
/** ORC_ARM64_TYPE_EXT */
|
|
847
|
-
#define orc_arm64_emit_load_uxtw(p,b,Rt,Rn,Rm,imm) \
|
|
848
|
-
orc_arm64_emit_mem(p,b,ORC_ARM64_MEM_LDR,ORC_ARM64_TYPE_EXT,ORC_ARM64_EXTEND_UXTW,Rt,Rn,Rm,imm)
|
|
849
|
-
#define orc_arm64_emit_load_lsl(p,b,Rt,Rn,Rm,imm) \
|
|
850
|
-
orc_arm64_emit_mem(p,b,ORC_ARM64_MEM_LDR,ORC_ARM64_TYPE_EXT,ORC_ARM64_EXTEND_UXTX,Rt,Rn,Rm,imm)
|
|
851
|
-
#define orc_arm64_emit_load_sxtw(p,b,Rt,Rn,Rm,imm) \
|
|
852
|
-
orc_arm64_emit_mem(p,b,ORC_ARM64_MEM_LDR,ORC_ARM64_TYPE_EXT,ORC_ARM64_EXTEND_SXTW,Rt,Rn,Rm,imm)
|
|
853
|
-
#define orc_arm64_emit_load_sxtx(p,b,Rt,Rn,Rm,imm) \
|
|
854
|
-
orc_arm64_emit_mem(p,b,ORC_ARM64_MEM_LDR,ORC_ARM64_TYPE_EXT,ORC_ARM64_EXTEND_SXTX,Rt,Rn,Rm,imm)
|
|
855
|
-
|
|
856
|
-
/** memory access instructions (pair) */
|
|
857
|
-
|
|
858
|
-
/** ORC_ARM64_MEM_STR */
|
|
859
|
-
#define orc_arm64_emit_store_pair_reg(p,b,Rt,Rt2,Rn,imm) \
|
|
860
|
-
orc_arm64_emit_mem_pair(p,b,ORC_ARM64_MEM_STR,2,Rt,Rt2,Rn,imm)
|
|
861
|
-
#define orc_arm64_emit_store_pair_pre(p,b,Rt,Rt2,Rn,imm) \
|
|
862
|
-
orc_arm64_emit_mem_pair(p,b,ORC_ARM64_MEM_STR,3,Rt,Rt2,Rn,imm)
|
|
863
|
-
#define orc_arm64_emit_store_pair_post(p,b,Rt,Rt2,Rn,imm) \
|
|
864
|
-
orc_arm64_emit_mem_pair(p,b,ORC_ARM64_MEM_STR,1,Rt,Rt2,Rn,imm)
|
|
865
|
-
|
|
866
|
-
/** ORC_ARM64_MEM_LDR */
|
|
867
|
-
#define orc_arm64_emit_load_pair_reg(p,b,Rt,Rt2,Rn,imm) \
|
|
868
|
-
orc_arm64_emit_mem_pair(p,b,ORC_ARM64_MEM_LDR,2,Rt,Rt2,Rn,imm)
|
|
869
|
-
#define orc_arm64_emit_load_pair_pre(p,b,Rt,Rt2,Rn,imm) \
|
|
870
|
-
orc_arm64_emit_mem_pair(p,b,ORC_ARM64_MEM_LDR,3,Rt,Rt2,Rn,imm)
|
|
871
|
-
#define orc_arm64_emit_load_pair_post(p,b,Rt,Rt2,Rn,imm) \
|
|
872
|
-
orc_arm64_emit_mem_pair(p,b,ORC_ARM64_MEM_LDR,1,Rt,Rt2,Rn,imm)
|
|
873
|
-
|
|
874
|
-
#endif
|
|
875
|
-
|
|
876
|
-
ORC_END_DECLS
|
|
877
|
-
|
|
878
|
-
#endif
|
|
879
|
-
|