ファイルへ移動
Luke Usher 2d81319a2f Squashed 'thirdparty/sljit/' changes from a7066fdb1..1e0579727
1e0579727 Fix constant pool bug on arm32 (#249)

git-subtree-dir: thirdparty/sljit
git-subtree-split: 1e0579727f5805f0e34cca6b5e0c841dd92ebfb0
2024-06-03 17:49:25 +01:00
doc Squashed 'thirdparty/sljit/' changes from c1cbaf09e..607158516 2024-02-11 19:16:29 +00:00
regex_src Squashed 'thirdparty/sljit/' changes from 5420f8bee8..a7066fdb10 2024-05-27 10:04:35 +01:00
sljit_src Squashed 'thirdparty/sljit/' changes from a7066fdb1..1e0579727 2024-06-03 17:49:25 +01:00
test_src Squashed 'thirdparty/sljit/' changes from 5420f8bee8..a7066fdb10 2024-05-27 10:04:35 +01:00
.gitignore
API_CHANGES Squashed 'thirdparty/sljit/' changes from 5420f8bee8..a7066fdb10 2024-05-27 10:04:35 +01:00
CMakeLists.txt Squashed 'thirdparty/sljit/' changes from 51538f102..aa71425db 2023-07-31 16:56:54 +01:00
GNUmakefile Squashed 'thirdparty/sljit/' changes from c1cbaf09e..607158516 2024-02-11 19:16:29 +00:00
INTERNAL_CHANGES
LICENSE Squashed 'thirdparty/sljit/' changes from d6a0fa61e..761d48d2b 2022-05-13 18:47:16 +01:00
README Squashed 'thirdparty/sljit/' changes from 607158516..5420f8bee 2024-02-25 12:22:29 +00:00

README

                     SLJIT - Stack Less JIT Compiler

Purpose:
  A low-level, machine independent JIT compiler, which is suitable for
  translating interpreted byte code into machine code. The sljitLir.h
  describes the LIR (low-level intermediate representation) of SLJIT.

Key features:
  - Supports several target architectures:
    x86 32/64, ARM 32/64, RiscV 32/64, s390x 64,
    PowerPC 32/64, LoongArch 64, MIPS 32/64
  - Supports a large number of operations
    - Supports self-modifying code
    - Supports tail calls
    - Support fast calls (non-ABI compatible)
    - Supports byte order reverse (endianness switching)
    - Supports unaligned memory accesses
    - Supports SIMD / atomic operations on certain CPUs
  - Direct register access, both integer and floating point
  - Stack space allocated for function local variables can be
    accessed as a linear memory area
  - All-in-one compilation is supported
  - When sljitLir.c is directly included by a C source file,
    the jit compiler API can be completely hidden from
    external use (see SLJIT_CONFIG_STATIC macro)
    - Code can be generated for multiple target cpus
      by including sljitLir.c in different C files, where
      each compiler instance is configured to target a
      different architecture
  - The compiler can be serialized into a byte buffer
    - Useful for ahead-of-time compiling
    - Code generation can be resumed after deserialization
      (partial ahead-of-time compiling)

Compatible:
  C99 (C++) compilers.

Using sljit:
  Copy the content of sljit_src directory into your project source directory.
  Add sljitLir.c source file to your build environment. All other files are
  included by sljitLir.c (if required). Define the machine by SLJIT_CONFIG_*
  selector. See sljitConfigCPU.h for all possible values. For C++ compilers,
  rename sljitLir.c to sljitLir.cpp.

More info:
  https://zherczeg.github.io/sljit/

Contact:
  hzmester@freemail.hu

Special thanks:
  Alexander Nasonov
  Carlo Marcelo Arenas Belón
  Christian Persch
  Daniel Richard G.
  Giuseppe D'Angelo
  H.J. Lu
  James Cowgill
  Jason Hood
  Jiong Wang (TileGX support)
  Marc Mutz
  Martin Storsjö
  Michael McConville
  Mingtao Zhou (LoongArch support)
  Walter Lee
  Wen Xichang
  YunQiang Su