@img/sharp-libvips-dev 1.1.0-rc5 → 1.2.0-rc.1
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/gdbusnameowning.h +12 -10
- package/include/glib-2.0/gio/gio-visibility.h +34 -0
- package/include/glib-2.0/gio/gsettings.h +35 -31
- 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 +34 -0
- 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/gmodule/gmodule-visibility.h +34 -0
- package/include/glib-2.0/gobject/gobject-visibility.h +34 -0
- package/include/glib-2.0/gobject/gsignal.h +33 -8
- 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 +33 -30
- package/include/libxml2/libxml/HTMLtree.h +1 -0
- package/include/libxml2/libxml/SAX.h +2 -186
- package/include/libxml2/libxml/SAX2.h +2 -3
- package/include/libxml2/libxml/catalog.h +1 -0
- package/include/libxml2/libxml/debugXML.h +0 -138
- package/include/libxml2/libxml/encoding.h +124 -61
- package/include/libxml2/libxml/entities.h +0 -19
- package/include/libxml2/libxml/globals.h +0 -16
- package/include/libxml2/libxml/nanoftp.h +3 -173
- package/include/libxml2/libxml/parser.h +474 -231
- package/include/libxml2/libxml/parserInternals.h +21 -101
- package/include/libxml2/libxml/relaxng.h +7 -2
- package/include/libxml2/libxml/threads.h +0 -6
- package/include/libxml2/libxml/tree.h +29 -85
- package/include/libxml2/libxml/valid.h +20 -12
- package/include/libxml2/libxml/xinclude.h +5 -0
- package/include/libxml2/libxml/xlink.h +4 -0
- package/include/libxml2/libxml/xmlIO.h +15 -34
- package/include/libxml2/libxml/xmlautomata.h +19 -2
- package/include/libxml2/libxml/xmlerror.h +17 -18
- package/include/libxml2/libxml/xmlexports.h +6 -56
- package/include/libxml2/libxml/xmlmemory.h +19 -19
- package/include/libxml2/libxml/xmlmodule.h +4 -0
- package/include/libxml2/libxml/xmlreader.h +11 -3
- package/include/libxml2/libxml/xmlregexp.h +7 -106
- package/include/libxml2/libxml/xmlsave.h +11 -2
- package/include/libxml2/libxml/xmlschemas.h +10 -5
- package/include/libxml2/libxml/xmlunicode.h +3 -354
- package/include/libxml2/libxml/xmlversion.h +18 -33
- package/include/libxml2/libxml/xpath.h +5 -15
- package/include/libxml2/libxml/xpathInternals.h +9 -3
- package/include/libxml2/libxml/xpointer.h +1 -91
- 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/glib-2.0/glib/gwin32.h +0 -142
- 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,209 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
#ifndef _ORC_POWERPC_H_
|
|
3
|
-
#define _ORC_POWERPC_H_
|
|
4
|
-
|
|
5
|
-
#include <orc/orcprogram.h>
|
|
6
|
-
|
|
7
|
-
ORC_BEGIN_DECLS
|
|
8
|
-
|
|
9
|
-
#ifdef ORC_ENABLE_UNSTABLE_API
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
#if defined(__LITTLE_ENDIAN__)
|
|
13
|
-
#define IS_POWERPC_BE(compiler) \
|
|
14
|
-
(ORC_UNLIKELY ((compiler->target_flags & ORC_TARGET_POWERPC_LE) == 0))
|
|
15
|
-
#define IS_POWERPC_LE(compiler) \
|
|
16
|
-
(ORC_LIKELY ((compiler->target_flags & ORC_TARGET_POWERPC_LE) == ORC_TARGET_POWERPC_LE))
|
|
17
|
-
#else
|
|
18
|
-
#define IS_POWERPC_BE(compiler) \
|
|
19
|
-
(ORC_LIKELY ((compiler->target_flags & ORC_TARGET_POWERPC_LE) == 0))
|
|
20
|
-
#define IS_POWERPC_LE(compiler) \
|
|
21
|
-
(ORC_UNLIKELY ((compiler->target_flags & ORC_TARGET_POWERPC_LE) == ORC_TARGET_POWERPC_LE))
|
|
22
|
-
#endif
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
enum {
|
|
26
|
-
POWERPC_R0 = ORC_GP_REG_BASE,
|
|
27
|
-
POWERPC_R1,
|
|
28
|
-
POWERPC_R2,
|
|
29
|
-
POWERPC_R3,
|
|
30
|
-
POWERPC_R4,
|
|
31
|
-
POWERPC_R5,
|
|
32
|
-
POWERPC_R6,
|
|
33
|
-
POWERPC_R7,
|
|
34
|
-
POWERPC_R8,
|
|
35
|
-
POWERPC_R9,
|
|
36
|
-
POWERPC_R10,
|
|
37
|
-
POWERPC_R11,
|
|
38
|
-
POWERPC_R12,
|
|
39
|
-
POWERPC_R13,
|
|
40
|
-
POWERPC_R14,
|
|
41
|
-
POWERPC_R15,
|
|
42
|
-
POWERPC_R16,
|
|
43
|
-
POWERPC_R17,
|
|
44
|
-
POWERPC_R18,
|
|
45
|
-
POWERPC_R19,
|
|
46
|
-
POWERPC_R20,
|
|
47
|
-
POWERPC_R21,
|
|
48
|
-
POWERPC_R22,
|
|
49
|
-
POWERPC_R23,
|
|
50
|
-
POWERPC_R24,
|
|
51
|
-
POWERPC_R25,
|
|
52
|
-
POWERPC_R26,
|
|
53
|
-
POWERPC_R27,
|
|
54
|
-
POWERPC_R28,
|
|
55
|
-
POWERPC_R29,
|
|
56
|
-
POWERPC_R30,
|
|
57
|
-
POWERPC_R31,
|
|
58
|
-
POWERPC_V0 = ORC_VEC_REG_BASE,
|
|
59
|
-
POWERPC_V1,
|
|
60
|
-
POWERPC_V2,
|
|
61
|
-
POWERPC_V3,
|
|
62
|
-
POWERPC_V4,
|
|
63
|
-
POWERPC_V5,
|
|
64
|
-
POWERPC_V6,
|
|
65
|
-
POWERPC_V7,
|
|
66
|
-
POWERPC_V8,
|
|
67
|
-
POWERPC_V9,
|
|
68
|
-
POWERPC_V10,
|
|
69
|
-
POWERPC_V11,
|
|
70
|
-
POWERPC_V12,
|
|
71
|
-
POWERPC_V13,
|
|
72
|
-
POWERPC_V14,
|
|
73
|
-
POWERPC_V15,
|
|
74
|
-
POWERPC_V16,
|
|
75
|
-
POWERPC_V17,
|
|
76
|
-
POWERPC_V18,
|
|
77
|
-
POWERPC_V19,
|
|
78
|
-
POWERPC_V20,
|
|
79
|
-
POWERPC_V21,
|
|
80
|
-
POWERPC_V22,
|
|
81
|
-
POWERPC_V23,
|
|
82
|
-
POWERPC_V24,
|
|
83
|
-
POWERPC_V25,
|
|
84
|
-
POWERPC_V26,
|
|
85
|
-
POWERPC_V27,
|
|
86
|
-
POWERPC_V28,
|
|
87
|
-
POWERPC_V29,
|
|
88
|
-
POWERPC_V30,
|
|
89
|
-
POWERPC_V31
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
extern int orc_powerpc_cpu_flags;
|
|
93
|
-
void powerpc_detect_cpu_flags (void);
|
|
94
|
-
|
|
95
|
-
const char * powerpc_get_regname(int i);
|
|
96
|
-
int powerpc_regnum (int i);
|
|
97
|
-
|
|
98
|
-
void powerpc_emit(OrcCompiler *compiler, unsigned int insn);
|
|
99
|
-
|
|
100
|
-
void powerpc_emit_add (OrcCompiler *compiler, int regd, int rega, int regb);
|
|
101
|
-
void powerpc_emit_addi_rec (OrcCompiler *compiler, int regd, int rega, int imm);
|
|
102
|
-
void powerpc_emit_addi (OrcCompiler *compiler, int regd, int rega, int imm);
|
|
103
|
-
void powerpc_emit_lwz (OrcCompiler *compiler, int regd, int rega, int imm);
|
|
104
|
-
void powerpc_emit_stw (OrcCompiler *compiler, int regs, int rega, int offset);
|
|
105
|
-
void powerpc_emit_stwu (OrcCompiler *compiler, int regs, int rega, int offset);
|
|
106
|
-
void powerpc_emit_ld (OrcCompiler *compiler, int regd, int rega, int imm);
|
|
107
|
-
void powerpc_emit_std (OrcCompiler *compiler, int regs, int rega, int offset);
|
|
108
|
-
void powerpc_emit_stdu (OrcCompiler *compiler, int regs, int rega, int offset);
|
|
109
|
-
|
|
110
|
-
void powerpc_emit_ret (OrcCompiler *compiler);
|
|
111
|
-
void powerpc_emit_b (OrcCompiler *compiler, int label);
|
|
112
|
-
void powerpc_emit_beq (OrcCompiler *compiler, int label);
|
|
113
|
-
void powerpc_emit_bne (OrcCompiler *compiler, int label);
|
|
114
|
-
void powerpc_emit_label (OrcCompiler *compiler, int label);
|
|
115
|
-
void powerpc_add_fixup (OrcCompiler *compiler, int type, unsigned char *ptr, int label);
|
|
116
|
-
void powerpc_do_fixups (OrcCompiler *compiler);
|
|
117
|
-
ORC_API void orc_powerpc_flush_cache (OrcCode *code);
|
|
118
|
-
|
|
119
|
-
void powerpc_emit_srawi (OrcCompiler *compiler, int regd, int rega, int shift, int record);
|
|
120
|
-
void powerpc_emit_655510 (OrcCompiler *compiler, int major, int d, int a, int b, int minor);
|
|
121
|
-
void powerpc_emit_D (OrcCompiler *compiler, const char *name, unsigned int insn, int regd, int rega, int imm);
|
|
122
|
-
void powerpc_emit_X (OrcCompiler *compiler, unsigned int insn, int d, int a, int b);
|
|
123
|
-
void powerpc_emit_VA (OrcCompiler *compiler, const char *name, unsigned int insn, int d, int a, int b, int c);
|
|
124
|
-
void powerpc_emit_VA_acb (OrcCompiler *compiler, const char *name, unsigned int insn, int d, int a, int b, int c);
|
|
125
|
-
void powerpc_emit_VX (OrcCompiler *compiler, unsigned int insn, int d, int a, int b);
|
|
126
|
-
void powerpc_emit_VX_b (OrcCompiler *p, const char *name, unsigned int insn, int a);
|
|
127
|
-
void powerpc_emit_VX_db (OrcCompiler *p, const char *name, unsigned int insn, int d, int b);
|
|
128
|
-
void powerpc_emit_VX_dbi (OrcCompiler *p, const char *name, unsigned int insn, int d, int b, int imm);
|
|
129
|
-
void powerpc_emit_VXR (OrcCompiler *compiler, const char *name, unsigned int insn, int d, int a, int b, int record);
|
|
130
|
-
void powerpc_emit_VX_2 (OrcCompiler *p, const char *name, unsigned int insn, int d, int a, int b);
|
|
131
|
-
void powerpc_emit_VX_3 (OrcCompiler *p, const char *name, unsigned int insn, int d, int a, int b, int c);
|
|
132
|
-
void powerpc_emit_VX_3_reg (OrcCompiler *p, const char *name, unsigned int insn, int d, int a, int b, int c);
|
|
133
|
-
void powerpc_emit_VX_4 (OrcCompiler *p, const char *name, unsigned int insn, int d, int a);
|
|
134
|
-
int powerpc_get_constant (OrcCompiler *p, int type, int value);
|
|
135
|
-
int powerpc_get_constant_full (OrcCompiler *p, int value0, int value1, int value2, int value3);
|
|
136
|
-
void powerpc_load_long_constant (OrcCompiler *p, int reg, orc_uint32 a, orc_uint32 b, orc_uint32 c, orc_uint32 d);
|
|
137
|
-
void powerpc_emit_full_constants (OrcCompiler* p);
|
|
138
|
-
void powerpc_emit_load_address (OrcCompiler* compiler, int regd, int rega, int imm);
|
|
139
|
-
void powerpc_load_constant (OrcCompiler* p, int i, int reg);
|
|
140
|
-
|
|
141
|
-
void powerpc_load_align (OrcCompiler *compiler, int vector_reg, int offset_reg, int src_reg);
|
|
142
|
-
void powerpc_store_align (OrcCompiler *compiler, int vector_reg, int offset_reg, int src_reg);
|
|
143
|
-
|
|
144
|
-
/* instructions */
|
|
145
|
-
#define powerpc_emit_vand(p,a,b,c) powerpc_emit_VX_2 (p, "vand", 0x10000404, a, b, c)
|
|
146
|
-
#define powerpc_emit_vandc(p,a,b,c) powerpc_emit_VX_2 (p, "vandc", 0x10000444, a, b, c)
|
|
147
|
-
|
|
148
|
-
#define powerpc_emit_vor(p,a,b,c) powerpc_emit_VX_2 (p, "vor", 0x10000484, a, b, c)
|
|
149
|
-
#define powerpc_emit_vxor(p,a,b,c) powerpc_emit_VX_2 (p, "vxor", 0x100004c4, a, b, c)
|
|
150
|
-
|
|
151
|
-
#define powerpc_emit_vmulesb(p,a,b,c) powerpc_emit_VX_2 (p, "vmulesb", 0x10000308, a, b, c)
|
|
152
|
-
#define powerpc_emit_vmuleub(p,a,b,c) powerpc_emit_VX_2 (p, "vmuleub", 0x10000208, a, b, c)
|
|
153
|
-
#define powerpc_emit_vmulesh(p,a,b,c) powerpc_emit_VX_2 (p, "vmulesh", 0x10000348, a, b, c)
|
|
154
|
-
#define powerpc_emit_vmuleuh(p,a,b,c) powerpc_emit_VX_2 (p, "vmuleuh", 0x10000248, a, b, c)
|
|
155
|
-
#define powerpc_emit_vmulosb(p,a,b,c) powerpc_emit_VX_2 (p, "vmulosb", 0x10000108, a, b, c)
|
|
156
|
-
#define powerpc_emit_vmuloub(p,a,b,c) powerpc_emit_VX_2 (p, "vmuloub", 0x10000008, a, b, c)
|
|
157
|
-
#define powerpc_emit_vmulosh(p,a,b,c) powerpc_emit_VX_2 (p, "vmulosh", 0x10000148, a, b, c)
|
|
158
|
-
#define powerpc_emit_vmulouh(p,a,b,c) powerpc_emit_VX_2 (p, "vmulouh", 0x10000048, a, b, c)
|
|
159
|
-
|
|
160
|
-
#define powerpc_emit_vmuleuw(p,a,b,c) powerpc_emit_VX_2 (p, "vmuleuw", 0x10000288, a, b, c)
|
|
161
|
-
#define powerpc_emit_vmulouw(p,a,b,c) powerpc_emit_VX_2 (p, "vmulouw", 0x10000088, a, b, c)
|
|
162
|
-
|
|
163
|
-
#define powerpc_emit_vmrghb(p,a,b,c) powerpc_emit_VX_2 (p, "vmrghb", 0x1000000c, a, b, c)
|
|
164
|
-
#define powerpc_emit_vmrghh(p,a,b,c) powerpc_emit_VX_2 (p, "vmrghh", 0x1000004c, a, b, c)
|
|
165
|
-
#define powerpc_emit_vmrghw(p,a,b,c) powerpc_emit_VX_2 (p, "vmrghw", 0x1000008c, a, b, c)
|
|
166
|
-
#define powerpc_emit_vmrglb(p,a,b,c) powerpc_emit_VX_2 (p, "vmrglb", 0x1000010c, a, b, c)
|
|
167
|
-
#define powerpc_emit_vmrglh(p,a,b,c) powerpc_emit_VX_2 (p, "vmrglh", 0x1000014c, a, b, c)
|
|
168
|
-
#define powerpc_emit_vmrglw(p,a,b,c) powerpc_emit_VX_2 (p, "vmrglw", 0x1000018c, a, b, c)
|
|
169
|
-
|
|
170
|
-
#define powerpc_emit_vpkshss(p,a,b,c) powerpc_emit_VX_2 (p, "vpkshss", 0x1000018e, a, b, c)
|
|
171
|
-
#define powerpc_emit_vpkshus(p,a,b,c) powerpc_emit_VX_2 (p, "vpkshus", 0x1000010e, a, b, c)
|
|
172
|
-
#define powerpc_emit_vpkswss(p,a,b,c) powerpc_emit_VX_2 (p, "vpkswss", 0x100001ce, a, b, c)
|
|
173
|
-
#define powerpc_emit_vpkswus(p,a,b,c) powerpc_emit_VX_2 (p, "vpkswus", 0x1000014e, a, b, c)
|
|
174
|
-
#define powerpc_emit_vpkuhus(p,a,b,c) powerpc_emit_VX_2 (p, "vpkuhus", 0x1000008e, a, b, c)
|
|
175
|
-
#define powerpc_emit_vpkuhum(p,a,b,c) powerpc_emit_VX_2 (p, "vpkuhum", 0x1000000e, a, b, c)
|
|
176
|
-
#define powerpc_emit_vpkuwus(p,a,b,c) powerpc_emit_VX_2 (p, "vpkuwus", 0x100000ce, a, b, c)
|
|
177
|
-
#define powerpc_emit_vpkuwum(p,a,b,c) powerpc_emit_VX_2 (p, "vpkuwum", 0x1000004e, a, b, c)
|
|
178
|
-
|
|
179
|
-
#define powerpc_emit_vadduhm(p,a,b,c) powerpc_emit_VX_2 (p, "vadduhm", 0x10000040, a, b, c)
|
|
180
|
-
#define powerpc_emit_vadduwm(p,a,b,c) powerpc_emit_VX_2 (p, "vadduwm", 0x10000080, a, b, c)
|
|
181
|
-
#define powerpc_emit_vsububm(p,a,b,c) powerpc_emit_VX_2 (p, "vsububm", 0x10000400, a, b, c)
|
|
182
|
-
#define powerpc_emit_vsum4ubs(p,a,b,c) powerpc_emit_VX_2 (p, "vsum4ubs", 0x10000608, a, b, c)
|
|
183
|
-
|
|
184
|
-
#define powerpc_emit_vmaxub(p,a,b,c) powerpc_emit_VX_2 (p, "vmaxub", 0x10000002, a, b, c)
|
|
185
|
-
#define powerpc_emit_vmaxsb(p,a,b,c) powerpc_emit_VX_2 (p, "vmaxsb", 0x10000102, a, b, c)
|
|
186
|
-
#define powerpc_emit_vmaxsh(p,a,b,c) powerpc_emit_VX_2 (p, "vmaxsh", 0x10000142, a, b, c)
|
|
187
|
-
#define powerpc_emit_vmaxsw(p,a,b,c) powerpc_emit_VX_2 (p, "vmaxsw", 0x10000182, a, b, c)
|
|
188
|
-
|
|
189
|
-
#define powerpc_emit_vminub(p,a,b,c) powerpc_emit_VX_2 (p, "vminub", 0x10000202, a, b, c)
|
|
190
|
-
#define powerpc_emit_vminsb(p,a,b,c) powerpc_emit_VX_2 (p, "vminsb", 0x10000302, a, b, c)
|
|
191
|
-
#define powerpc_emit_vminsh(p,a,b,c) powerpc_emit_VX_2 (p, "vminsh", 0x10000342, a, b, c)
|
|
192
|
-
#define powerpc_emit_vminsw(p,a,b,c) powerpc_emit_VX_2 (p, "vminsw", 0x10000382, a, b, c)
|
|
193
|
-
|
|
194
|
-
#define powerpc_emit_vsldoi(p,a,b,c,d) powerpc_emit_VX_3 (p, "vsldoi", 0x1000002c | (d<<6), a, b, c, d)
|
|
195
|
-
#define powerpc_emit_vmladduhm(p,a,b,c,d) powerpc_emit_VA (p, "vmladduhm", 0x10000022, a, b, c, d)
|
|
196
|
-
|
|
197
|
-
#define powerpc_emit_vupkhsb(p,a,b) powerpc_emit_VX_4 (p, "vupkhsb", 0x1000020e, a, b)
|
|
198
|
-
#define powerpc_emit_vupkhsh(p,a,b) powerpc_emit_VX_4 (p, "vupkhsh", 0x1000024e, a, b)
|
|
199
|
-
#define powerpc_emit_vupklsb(p,a,b) powerpc_emit_VX_4 (p, "vupklsb", 0x1000028e, a, b)
|
|
200
|
-
#define powerpc_emit_vupklsh(p,a,b) powerpc_emit_VX_4 (p, "vupklsh", 0x100002ce, a, b)
|
|
201
|
-
|
|
202
|
-
#define powerpc_emit_vperm(p,a,b,c,d) powerpc_emit_VA (p, "vperm", 0x1000002b, a, b, c, d)
|
|
203
|
-
|
|
204
|
-
#endif
|
|
205
|
-
|
|
206
|
-
ORC_END_DECLS
|
|
207
|
-
|
|
208
|
-
#endif
|
|
209
|
-
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
#ifndef _ORC_PROGRAM_H_
|
|
3
|
-
#define _ORC_PROGRAM_H_
|
|
4
|
-
|
|
5
|
-
#include <orc/orc.h>
|
|
6
|
-
#include <orc/orclimits.h>
|
|
7
|
-
#include <orc/orcexecutor.h>
|
|
8
|
-
#include <orc/orccode.h>
|
|
9
|
-
#include <orc/orcbytecode.h>
|
|
10
|
-
#include <orc/orccompiler.h>
|
|
11
|
-
#include <orc/orctarget.h>
|
|
12
|
-
#include <orc/orcrule.h>
|
|
13
|
-
|
|
14
|
-
ORC_BEGIN_DECLS
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
#define ORC_PROGRAM_ERROR(program, ...) do { \
|
|
18
|
-
program->error = TRUE; \
|
|
19
|
-
orc_debug_print(ORC_DEBUG_WARNING, __FILE__, ORC_FUNCTION, __LINE__, __VA_ARGS__); \
|
|
20
|
-
} while (0)
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* OrcProgram:
|
|
24
|
-
*
|
|
25
|
-
* The OrcProgram structure has no public members
|
|
26
|
-
*/
|
|
27
|
-
struct _OrcProgram {
|
|
28
|
-
/*< private >*/
|
|
29
|
-
struct {
|
|
30
|
-
OrcStaticOpcode *opcode;
|
|
31
|
-
int dest_args[ORC_STATIC_OPCODE_N_DEST];
|
|
32
|
-
int src_args[ORC_STATIC_OPCODE_N_SRC];
|
|
33
|
-
|
|
34
|
-
OrcRule *rule;
|
|
35
|
-
} _unused[ORC_N_INSNS]; /* needed for ABI compatibility */
|
|
36
|
-
int n_insns;
|
|
37
|
-
|
|
38
|
-
struct {
|
|
39
|
-
char *name;
|
|
40
|
-
char *type_name;
|
|
41
|
-
|
|
42
|
-
int size;
|
|
43
|
-
OrcVarType vartype;
|
|
44
|
-
|
|
45
|
-
int used;
|
|
46
|
-
int first_use;
|
|
47
|
-
int last_use;
|
|
48
|
-
int replaced;
|
|
49
|
-
int replacement;
|
|
50
|
-
|
|
51
|
-
int alloc;
|
|
52
|
-
int is_chained;
|
|
53
|
-
int is_aligned;
|
|
54
|
-
int is_uncached;
|
|
55
|
-
|
|
56
|
-
int value;
|
|
57
|
-
|
|
58
|
-
int ptr_register;
|
|
59
|
-
int ptr_offset;
|
|
60
|
-
int mask_alloc;
|
|
61
|
-
int aligned_data;
|
|
62
|
-
int param_type;
|
|
63
|
-
int load_dest;
|
|
64
|
-
} _unused3[ORC_N_VARIABLES]; /* needed for ABI compatibility */
|
|
65
|
-
|
|
66
|
-
int n_src_vars;
|
|
67
|
-
int n_dest_vars;
|
|
68
|
-
int n_param_vars;
|
|
69
|
-
int n_const_vars;
|
|
70
|
-
int n_temp_vars;
|
|
71
|
-
int n_accum_vars;
|
|
72
|
-
|
|
73
|
-
char *name;
|
|
74
|
-
char *asm_code;
|
|
75
|
-
|
|
76
|
-
unsigned char *_unused2;
|
|
77
|
-
/* The offset of code_exec in this structure is part of the ABI */
|
|
78
|
-
void *code_exec;
|
|
79
|
-
|
|
80
|
-
OrcInstruction insns[ORC_N_INSNS];
|
|
81
|
-
OrcVariable vars[ORC_N_VARIABLES];
|
|
82
|
-
|
|
83
|
-
void *backup_func;
|
|
84
|
-
char *backup_name;
|
|
85
|
-
int is_2d;
|
|
86
|
-
int constant_n;
|
|
87
|
-
int n_multiple;
|
|
88
|
-
int n_minimum;
|
|
89
|
-
int n_maximum;
|
|
90
|
-
int constant_m;
|
|
91
|
-
|
|
92
|
-
OrcCode *orccode;
|
|
93
|
-
|
|
94
|
-
/* Hide this here. Belongs in a Parser object */
|
|
95
|
-
char *init_function;
|
|
96
|
-
char *error_msg;
|
|
97
|
-
unsigned int current_line;
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
#define ORC_SRC_ARG(p,i,n) ((p)->vars[(i)->src_args[(n)]].alloc)
|
|
101
|
-
#define ORC_DEST_ARG(p,i,n) ((p)->vars[(i)->dest_args[(n)]].alloc)
|
|
102
|
-
#define ORC_SRC_TYPE(p,i,n) ((p)->vars[(i)->src_args[(n)]].vartype)
|
|
103
|
-
#define ORC_DEST_TYPE(p,i,n) ((p)->vars[(i)->dest_args[(n)]].vartype)
|
|
104
|
-
#define ORC_SRC_VAL(p,insn,n) ((p)->vars[(insn)->src_args[(n)]].value.i)
|
|
105
|
-
#define ORC_DEST_VAL(p,insn,n) ((p)->vars[(insn)->dest_args[(n)]].value.i)
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
ORC_API void orc_init (void);
|
|
109
|
-
|
|
110
|
-
ORC_API OrcProgram * orc_program_new (void);
|
|
111
|
-
ORC_API OrcProgram * orc_program_new_ds (int size1, int size2);
|
|
112
|
-
ORC_API OrcProgram * orc_program_new_dss (int size1, int size2, int size3);
|
|
113
|
-
ORC_API OrcProgram * orc_program_new_as (int size1, int size2);
|
|
114
|
-
ORC_API OrcProgram * orc_program_new_ass (int size1, int size2, int size3);
|
|
115
|
-
ORC_API OrcProgram * orc_program_new_from_static_bytecode (const orc_uint8 *bytecode);
|
|
116
|
-
|
|
117
|
-
ORC_API const char * orc_program_get_name (OrcProgram *program);
|
|
118
|
-
ORC_API void orc_program_set_name (OrcProgram *program, const char *name);
|
|
119
|
-
ORC_API void orc_program_set_line (OrcProgram *program, unsigned int line);
|
|
120
|
-
ORC_API void orc_program_set_2d (OrcProgram *program);
|
|
121
|
-
ORC_API void orc_program_set_constant_n (OrcProgram *program, int n);
|
|
122
|
-
ORC_API void orc_program_set_n_multiple (OrcProgram *ex, int n);
|
|
123
|
-
ORC_API void orc_program_set_n_minimum (OrcProgram *ex, int n);
|
|
124
|
-
ORC_API void orc_program_set_n_maximum (OrcProgram *ex, int n);
|
|
125
|
-
ORC_API void orc_program_set_constant_m (OrcProgram *program, int m);
|
|
126
|
-
|
|
127
|
-
ORC_API void orc_program_append (OrcProgram *p, const char *opcode, int arg0, int arg1, int arg2);
|
|
128
|
-
ORC_API void orc_program_append_2 (OrcProgram *program, const char *name,
|
|
129
|
-
unsigned int flags, int arg0, int arg1, int arg2, int arg3);
|
|
130
|
-
ORC_API void orc_program_append_str (OrcProgram *p, const char *opcode,
|
|
131
|
-
const char * arg0, const char * arg1, const char * arg2);
|
|
132
|
-
ORC_API void orc_program_append_str_2 (OrcProgram *program, const char *name,
|
|
133
|
-
unsigned int flags, const char *arg1, const char *arg2, const char *arg3,
|
|
134
|
-
const char *arg4);
|
|
135
|
-
ORC_API int orc_program_append_str_n (OrcProgram *program, const char *name,
|
|
136
|
-
unsigned int flags, int argc, const char **argv);
|
|
137
|
-
ORC_API void orc_program_append_ds (OrcProgram *program, const char *opcode, int arg0,
|
|
138
|
-
int arg1);
|
|
139
|
-
ORC_API void orc_program_append_ds_str (OrcProgram *p, const char *opcode,
|
|
140
|
-
const char * arg0, const char * arg1);
|
|
141
|
-
ORC_API void orc_program_append_dds_str (OrcProgram *program, const char *name,
|
|
142
|
-
const char *arg1, const char *arg2, const char *arg3);
|
|
143
|
-
|
|
144
|
-
ORC_API OrcCompileResult orc_program_compile (OrcProgram *p);
|
|
145
|
-
ORC_API OrcCompileResult orc_program_compile_for_target (OrcProgram *p, OrcTarget *target);
|
|
146
|
-
ORC_API OrcCompileResult orc_program_compile_full (OrcProgram *p, OrcTarget *target,
|
|
147
|
-
unsigned int flags);
|
|
148
|
-
ORC_API void orc_program_set_backup_function (OrcProgram *p, OrcExecutorFunc func);
|
|
149
|
-
ORC_API void orc_program_set_backup_name (OrcProgram *p, const char *name);
|
|
150
|
-
ORC_API void orc_program_free (OrcProgram *program);
|
|
151
|
-
|
|
152
|
-
ORC_API int orc_program_find_var_by_name (OrcProgram *program, const char *name);
|
|
153
|
-
|
|
154
|
-
ORC_API int orc_program_add_temporary (OrcProgram *program, int size, const char *name);
|
|
155
|
-
ORC_API int orc_program_dup_temporary (OrcProgram *program, int i, int j);
|
|
156
|
-
ORC_API int orc_program_add_source (OrcProgram *program, int size, const char *name);
|
|
157
|
-
ORC_API int orc_program_add_source_full (OrcProgram *program, int size, const char *name,
|
|
158
|
-
const char *type_name, int alignment);
|
|
159
|
-
ORC_API int orc_program_add_destination (OrcProgram *program, int size, const char *name);
|
|
160
|
-
ORC_API int orc_program_add_destination_full (OrcProgram *program, int size, const char *name,
|
|
161
|
-
const char *type_name, int alignment);
|
|
162
|
-
ORC_API int orc_program_add_constant (OrcProgram *program, int size, int value, const char *name);
|
|
163
|
-
ORC_API int orc_program_add_constant_int64 (OrcProgram *program, int size, orc_int64 value, const char *name);
|
|
164
|
-
ORC_API int orc_program_add_constant_float (OrcProgram *program, int size, float value, const char *name);
|
|
165
|
-
ORC_API int orc_program_add_constant_double (OrcProgram *program, int size, double value, const char *name);
|
|
166
|
-
ORC_API int orc_program_add_constant_str (OrcProgram *program, int size, const char *value, const char *name);
|
|
167
|
-
ORC_API int orc_program_add_parameter (OrcProgram *program, int size, const char *name);
|
|
168
|
-
ORC_API int orc_program_add_parameter_float (OrcProgram *program, int size, const char *name);
|
|
169
|
-
ORC_API int orc_program_add_parameter_double (OrcProgram *program, int size, const char *name);
|
|
170
|
-
ORC_API int orc_program_add_parameter_int64 (OrcProgram *program, int size, const char *name);
|
|
171
|
-
ORC_API int orc_program_add_accumulator (OrcProgram *program, int size, const char *name);
|
|
172
|
-
ORC_API void orc_program_set_type_name (OrcProgram *program, int var, const char *type_name);
|
|
173
|
-
ORC_API void orc_program_set_var_alignment (OrcProgram *program, int var, int alignment);
|
|
174
|
-
ORC_API void orc_program_set_sampling_type (OrcProgram *program, int var, int sampling_type);
|
|
175
|
-
|
|
176
|
-
ORC_API int orc_program_allocate_register (OrcProgram *program, int is_data);
|
|
177
|
-
|
|
178
|
-
ORC_API void orc_program_reset (OrcProgram *program);
|
|
179
|
-
ORC_API OrcCode *orc_program_take_code (OrcProgram *program);
|
|
180
|
-
|
|
181
|
-
ORC_API const char *orc_program_get_asm_code (OrcProgram *program);
|
|
182
|
-
ORC_API const char * orc_program_get_error (OrcProgram *program);
|
|
183
|
-
ORC_API void orc_program_set_error (OrcProgram *program, const char *error);
|
|
184
|
-
|
|
185
|
-
ORC_API int orc_program_get_max_array_size (OrcProgram *program);
|
|
186
|
-
ORC_API int orc_program_get_max_accumulator_size (OrcProgram *program);
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
ORC_END_DECLS
|
|
190
|
-
|
|
191
|
-
#endif
|
|
192
|
-
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
#ifndef _ORC_RULE_H_
|
|
3
|
-
#define _ORC_RULE_H_
|
|
4
|
-
|
|
5
|
-
#include <orc/orc.h>
|
|
6
|
-
#include <orc/orclimits.h>
|
|
7
|
-
#include <orc/orcopcode.h>
|
|
8
|
-
|
|
9
|
-
ORC_BEGIN_DECLS
|
|
10
|
-
|
|
11
|
-
typedef struct _OrcRule OrcRule;
|
|
12
|
-
typedef struct _OrcRuleSet OrcRuleSet;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
typedef void (*OrcRuleEmitFunc)(OrcCompiler *p, void *user, OrcInstruction *insn);
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* OrcRule:
|
|
19
|
-
*
|
|
20
|
-
* The OrcRule structure has no public members
|
|
21
|
-
*/
|
|
22
|
-
struct _OrcRule {
|
|
23
|
-
/*< private >*/
|
|
24
|
-
OrcRuleEmitFunc emit;
|
|
25
|
-
void *emit_user;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* OrcRuleSet:
|
|
30
|
-
*
|
|
31
|
-
* The OrcRuleSet structure has no public members
|
|
32
|
-
*/
|
|
33
|
-
struct _OrcRuleSet {
|
|
34
|
-
/*< private >*/
|
|
35
|
-
int opcode_major;
|
|
36
|
-
int required_target_flags;
|
|
37
|
-
|
|
38
|
-
OrcRule *rules;
|
|
39
|
-
int n_rules;
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
ORC_API OrcRuleSet * orc_rule_set_new (OrcOpcodeSet *opcode_set, OrcTarget *target,
|
|
43
|
-
unsigned int required_flags);
|
|
44
|
-
|
|
45
|
-
ORC_API void orc_rule_register (OrcRuleSet *rule_set, const char *opcode_name,
|
|
46
|
-
OrcRuleEmitFunc emit, void *emit_user);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
ORC_END_DECLS
|
|
50
|
-
|
|
51
|
-
#endif
|
|
52
|
-
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
#ifndef _ORC_SSE_H_
|
|
3
|
-
#define _ORC_SSE_H_
|
|
4
|
-
|
|
5
|
-
#include <orc/orc.h>
|
|
6
|
-
#include <orc/orcx86.h>
|
|
7
|
-
#include <orc/orcx86insn.h>
|
|
8
|
-
|
|
9
|
-
ORC_BEGIN_DECLS
|
|
10
|
-
|
|
11
|
-
#ifdef ORC_ENABLE_UNSTABLE_API
|
|
12
|
-
|
|
13
|
-
typedef enum {
|
|
14
|
-
X86_XMM0 = ORC_VEC_REG_BASE + 16,
|
|
15
|
-
X86_XMM1,
|
|
16
|
-
X86_XMM2,
|
|
17
|
-
X86_XMM3,
|
|
18
|
-
X86_XMM4,
|
|
19
|
-
X86_XMM5,
|
|
20
|
-
X86_XMM6,
|
|
21
|
-
X86_XMM7,
|
|
22
|
-
X86_XMM8,
|
|
23
|
-
X86_XMM9,
|
|
24
|
-
X86_XMM10,
|
|
25
|
-
X86_XMM11,
|
|
26
|
-
X86_XMM12,
|
|
27
|
-
X86_XMM13,
|
|
28
|
-
X86_XMM14,
|
|
29
|
-
X86_XMM15
|
|
30
|
-
}OrcSSERegister;
|
|
31
|
-
|
|
32
|
-
#define ORC_SSE_SHUF(a,b,c,d) ((((a)&3)<<6)|(((b)&3)<<4)|(((c)&3)<<2)|(((d)&3)<<0))
|
|
33
|
-
|
|
34
|
-
ORC_API const char * orc_x86_get_regname_sse(int i);
|
|
35
|
-
ORC_API void orc_x86_emit_mov_memoffset_sse (OrcCompiler *compiler, int size, int offset,
|
|
36
|
-
int reg1, int reg2, int is_aligned);
|
|
37
|
-
ORC_API void orc_x86_emit_mov_memindex_sse (OrcCompiler *compiler, int size, int offset,
|
|
38
|
-
int reg1, int regindex, int shift, int reg2, int is_aligned);
|
|
39
|
-
ORC_API void orc_x86_emit_mov_sse_memoffset (OrcCompiler *compiler, int size, int reg1, int offset,
|
|
40
|
-
int reg2, int aligned, int uncached);
|
|
41
|
-
|
|
42
|
-
ORC_API void orc_sse_set_mxcsr (OrcCompiler *compiler);
|
|
43
|
-
ORC_API void orc_sse_restore_mxcsr (OrcCompiler *compiler);
|
|
44
|
-
|
|
45
|
-
ORC_API void orc_sse_load_constant (OrcCompiler *compiler, int reg, int size,
|
|
46
|
-
orc_uint64 value);
|
|
47
|
-
|
|
48
|
-
#endif
|
|
49
|
-
|
|
50
|
-
ORC_API unsigned int orc_sse_get_cpu_flags (void);
|
|
51
|
-
|
|
52
|
-
ORC_END_DECLS
|
|
53
|
-
|
|
54
|
-
#endif
|
|
55
|
-
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
#ifndef _ORC_TARGET_H_
|
|
3
|
-
#define _ORC_TARGET_H_
|
|
4
|
-
|
|
5
|
-
#include <orc/orc.h>
|
|
6
|
-
#include <orc/orclimits.h>
|
|
7
|
-
#include <orc/orcrule.h>
|
|
8
|
-
|
|
9
|
-
ORC_BEGIN_DECLS
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
enum {
|
|
13
|
-
ORC_TARGET_C_C99 = (1<<0),
|
|
14
|
-
ORC_TARGET_C_BARE = (1<<1),
|
|
15
|
-
ORC_TARGET_C_NOEXEC = (1<<2),
|
|
16
|
-
ORC_TARGET_C_OPCODE = (1<<3),
|
|
17
|
-
ORC_TARGET_CLEAN_COMPILE = (1<<29),
|
|
18
|
-
ORC_TARGET_FAST_NAN = (1<<30),
|
|
19
|
-
ORC_TARGET_FAST_DENORMAL = (1<<31)
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
typedef enum {
|
|
23
|
-
ORC_TARGET_POWERPC_64BIT = (1<<0),
|
|
24
|
-
ORC_TARGET_POWERPC_LE = (1<<1),
|
|
25
|
-
ORC_TARGET_POWERPC_ALTIVEC = (1<<2),
|
|
26
|
-
ORC_TARGET_POWERPC_VSX = (1<<3),
|
|
27
|
-
ORC_TARGET_POWERPC_V207 = (1<<4)
|
|
28
|
-
} OrcTargetPowerPCFlags;
|
|
29
|
-
|
|
30
|
-
enum {
|
|
31
|
-
ORC_TARGET_NEON_CLEAN_COMPILE = (1<<0),
|
|
32
|
-
ORC_TARGET_NEON_NEON = (1<<1),
|
|
33
|
-
ORC_TARGET_NEON_EDSP = (1<<2),
|
|
34
|
-
ORC_TARGET_NEON_64BIT = (1<<3)
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
enum {
|
|
38
|
-
ORC_TARGET_ARM_EDSP = (1<<2),
|
|
39
|
-
ORC_TARGET_ARM_ARM6 = (1<<3)
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
typedef enum {
|
|
43
|
-
ORC_TARGET_MMX_MMX = (1<<0),
|
|
44
|
-
ORC_TARGET_MMX_MMXEXT = (1<<1),
|
|
45
|
-
ORC_TARGET_MMX_3DNOW = (1<<2),
|
|
46
|
-
ORC_TARGET_MMX_3DNOWEXT = (1<<3),
|
|
47
|
-
ORC_TARGET_MMX_SSSE3 = (1<<4),
|
|
48
|
-
ORC_TARGET_MMX_SSE4_1 = (1<<5),
|
|
49
|
-
ORC_TARGET_MMX_SSE4_2 = (1<<6),
|
|
50
|
-
ORC_TARGET_MMX_FRAME_POINTER = (1<<7),
|
|
51
|
-
ORC_TARGET_MMX_SHORT_JUMPS = (1<<8),
|
|
52
|
-
ORC_TARGET_MMX_64BIT = (1<<9)
|
|
53
|
-
} OrcTargetMMXFlags;
|
|
54
|
-
|
|
55
|
-
typedef enum {
|
|
56
|
-
ORC_TARGET_SSE_SSE2 = (1<<0),
|
|
57
|
-
ORC_TARGET_SSE_SSE3 = (1<<1),
|
|
58
|
-
ORC_TARGET_SSE_SSSE3 = (1<<2),
|
|
59
|
-
ORC_TARGET_SSE_SSE4_1 = (1<<3),
|
|
60
|
-
ORC_TARGET_SSE_SSE4_2 = (1<<4),
|
|
61
|
-
ORC_TARGET_SSE_SSE4A = (1<<5),
|
|
62
|
-
ORC_TARGET_SSE_SSE5 = (1<<6),
|
|
63
|
-
ORC_TARGET_SSE_FRAME_POINTER = (1<<7),
|
|
64
|
-
ORC_TARGET_SSE_SHORT_JUMPS = (1<<8),
|
|
65
|
-
ORC_TARGET_SSE_64BIT = (1<<9)
|
|
66
|
-
}OrcTargetSSEFlags;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* OrcTarget:
|
|
71
|
-
*
|
|
72
|
-
*/
|
|
73
|
-
struct _OrcTarget {
|
|
74
|
-
const char *name;
|
|
75
|
-
orc_bool executable;
|
|
76
|
-
int data_register_offset;
|
|
77
|
-
|
|
78
|
-
unsigned int (*get_default_flags)(void);
|
|
79
|
-
void (*compiler_init)(OrcCompiler *compiler);
|
|
80
|
-
void (*compile)(OrcCompiler *compiler);
|
|
81
|
-
|
|
82
|
-
OrcRuleSet rule_sets[ORC_N_RULE_SETS];
|
|
83
|
-
int n_rule_sets;
|
|
84
|
-
|
|
85
|
-
const char * (*get_asm_preamble)(void);
|
|
86
|
-
void (*load_constant)(OrcCompiler *compiler, int reg, int size, int value);
|
|
87
|
-
const char * (*get_flag_name)(int shift);
|
|
88
|
-
void (*flush_cache) (OrcCode *code);
|
|
89
|
-
void (*load_constant_long)(OrcCompiler *compiler, int reg,
|
|
90
|
-
OrcConstant *constant);
|
|
91
|
-
|
|
92
|
-
void *_unused[5];
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
ORC_API OrcRule * orc_target_get_rule (OrcTarget *target,
|
|
97
|
-
OrcStaticOpcode *opcode,
|
|
98
|
-
unsigned int target_flags);
|
|
99
|
-
|
|
100
|
-
ORC_API OrcTarget * orc_target_get_default (void);
|
|
101
|
-
ORC_API unsigned int orc_target_get_default_flags (OrcTarget *target);
|
|
102
|
-
ORC_API const char * orc_target_get_name (OrcTarget *target);
|
|
103
|
-
ORC_API const char * orc_target_get_flag_name (OrcTarget *target, int shift);
|
|
104
|
-
|
|
105
|
-
ORC_API const char * orc_target_get_asm_preamble (const char *target);
|
|
106
|
-
ORC_API const char * orc_target_get_preamble (OrcTarget *target);
|
|
107
|
-
ORC_API const char * orc_target_c_get_typedefs (void);
|
|
108
|
-
|
|
109
|
-
ORC_API void orc_target_register (OrcTarget *target);
|
|
110
|
-
ORC_API OrcTarget * orc_target_get_by_name (const char *target_name);
|
|
111
|
-
|
|
112
|
-
ORC_END_DECLS
|
|
113
|
-
|
|
114
|
-
#endif
|
|
115
|
-
|