summaryrefslogtreecommitdiff
path: root/ext/pcre/pcrelib/sljit/sljitConfigInternal.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/pcre/pcrelib/sljit/sljitConfigInternal.h')
-rw-r--r--ext/pcre/pcrelib/sljit/sljitConfigInternal.h67
1 files changed, 28 insertions, 39 deletions
diff --git a/ext/pcre/pcrelib/sljit/sljitConfigInternal.h b/ext/pcre/pcrelib/sljit/sljitConfigInternal.h
index 9275b14992..16e3547c93 100644
--- a/ext/pcre/pcrelib/sljit/sljitConfigInternal.h
+++ b/ext/pcre/pcrelib/sljit/sljitConfigInternal.h
@@ -31,14 +31,14 @@
SLJIT defines the following architecture dependent types and macros:
Types:
- sljit_s8, sljit_u8 : signed and unsigned 8 bit integer type
- sljit_s16, sljit_u16 : signed and unsigned 16 bit integer type
- sljit_s32, sljit_u32 : signed and unsigned 32 bit integer type
- sljit_sw, sljit_uw : signed and unsigned machine word, enough to store a pointer
- sljit_p : unsgined pointer value (usually the same as sljit_uw, but
- some 64 bit ABIs may use 32 bit pointers)
- sljit_f32 : 32 bit single precision floating point value
- sljit_f64 : 64 bit double precision floating point value
+ sljit_sb, sljit_ub : signed and unsigned 8 bit byte
+ sljit_sh, sljit_uh : signed and unsigned 16 bit half-word (short) type
+ sljit_si, sljit_ui : signed and unsigned 32 bit integer type
+ sljit_sw, sljit_uw : signed and unsigned machine word, enough to store a pointer
+ sljit_p : unsgined pointer value (usually the same as sljit_uw, but
+ some 64 bit ABIs may use 32 bit pointers)
+ sljit_s : single precision floating point value
+ sljit_d : double precision floating point value
Macros for feature detection (boolean):
SLJIT_32BIT_ARCHITECTURE : 32 bit architecture
@@ -56,10 +56,10 @@
SLJIT_NUMBER_OF_SCRATCH_FLOAT_REGISTERS : number of available floating point scratch registers
SLJIT_NUMBER_OF_SAVED_FLOAT_REGISTERS : number of available floating point saved registers
SLJIT_WORD_SHIFT : the shift required to apply when accessing a sljit_sw/sljit_uw array by index
- SLJIT_F32_SHIFT : the shift required to apply when accessing
- a single precision floating point array by index
- SLJIT_F64_SHIFT : the shift required to apply when accessing
- a double precision floating point array by index
+ SLJIT_DOUBLE_SHIFT : the shift required to apply when accessing
+ a double precision floating point array by index
+ SLJIT_SINGLE_SHIFT : the shift required to apply when accessing
+ a single precision floating point array by index
SLJIT_LOCALS_OFFSET : local space starting offset (SLJIT_SP + SLJIT_LOCALS_OFFSET)
SLJIT_RETURN_ADDRESS_OFFSET : a return instruction always adds this offset to the return address
@@ -252,6 +252,11 @@
#endif
#endif /* !SLJIT_INLINE */
+#ifndef SLJIT_CONST
+/* Const variables. */
+#define SLJIT_CONST const
+#endif
+
#ifndef SLJIT_UNUSED_ARG
/* Unused arguments. */
#define SLJIT_UNUSED_ARG(arg) (void)arg
@@ -279,15 +284,6 @@
/* Instruction cache flush. */
/****************************/
-#if (!defined SLJIT_CACHE_FLUSH && defined __has_builtin)
-#if __has_builtin(__builtin___clear_cache)
-
-#define SLJIT_CACHE_FLUSH(from, to) \
- __builtin___clear_cache((char*)from, (char*)to)
-
-#endif /* __has_builtin(__builtin___clear_cache) */
-#endif /* (!defined SLJIT_CACHE_FLUSH && defined __has_builtin) */
-
#ifndef SLJIT_CACHE_FLUSH
#if (defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86)
@@ -304,11 +300,6 @@
#define SLJIT_CACHE_FLUSH(from, to) \
sys_icache_invalidate((char*)(from), (char*)(to) - (char*)(from))
-#elif (defined(__GNUC__) && (__GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))
-
-#define SLJIT_CACHE_FLUSH(from, to) \
- __builtin___clear_cache((char*)from, (char*)to)
-
#elif defined __ANDROID__
/* Android lacks __clear_cache; instead, cacheflush should be used. */
@@ -321,14 +312,12 @@
/* The __clear_cache() implementation of GCC is a dummy function on PowerPC. */
#define SLJIT_CACHE_FLUSH(from, to) \
ppc_cache_flush((from), (to))
-#define SLJIT_CACHE_FLUSH_OWN_IMPL 1
#elif (defined SLJIT_CONFIG_SPARC_32 && SLJIT_CONFIG_SPARC_32)
/* The __clear_cache() implementation of GCC is a dummy function on Sparc. */
#define SLJIT_CACHE_FLUSH(from, to) \
sparc_cache_flush((from), (to))
-#define SLJIT_CACHE_FLUSH_OWN_IMPL 1
#else
@@ -341,20 +330,20 @@
#endif /* !SLJIT_CACHE_FLUSH */
/******************************************************/
-/* Integer and floating point type definitions. */
+/* Byte/half/int/word/single/double type definitions. */
/******************************************************/
/* 8 bit byte type. */
-typedef unsigned char sljit_u8;
-typedef signed char sljit_s8;
+typedef unsigned char sljit_ub;
+typedef signed char sljit_sb;
/* 16 bit half-word type. */
-typedef unsigned short int sljit_u16;
-typedef signed short int sljit_s16;
+typedef unsigned short int sljit_uh;
+typedef signed short int sljit_sh;
/* 32 bit integer type. */
-typedef unsigned int sljit_u32;
-typedef signed int sljit_s32;
+typedef unsigned int sljit_ui;
+typedef signed int sljit_si;
/* Machine word type. Enough for storing a pointer.
32 bit for 32 bit machines.
@@ -388,15 +377,15 @@ typedef long int sljit_sw;
typedef sljit_uw sljit_p;
/* Floating point types. */
-typedef float sljit_f32;
-typedef double sljit_f64;
+typedef float sljit_s;
+typedef double sljit_d;
/* Shift for pointer sized data. */
#define SLJIT_POINTER_SHIFT SLJIT_WORD_SHIFT
/* Shift for double precision sized data. */
-#define SLJIT_F32_SHIFT 2
-#define SLJIT_F64_SHIFT 3
+#define SLJIT_DOUBLE_SHIFT 3
+#define SLJIT_SINGLE_SHIFT 2
#ifndef SLJIT_W