277 行
9.6 KiB
Plaintext
277 行
9.6 KiB
Plaintext
This file is the short summary of the API changes:
|
|
|
|
20.03.2024 - Non-backward compatible
|
|
The sljit_p type is renamed to sljit_up.
|
|
|
|
26.02.2024 - Non-backward compatible
|
|
Arguments of sljit_create_compiler() and
|
|
sljit_generate_code() are changed and
|
|
sljit_get_exec_allocator_data() is removed.
|
|
The sljit_get_allocator_data() is renamed
|
|
to sljit_compiler_get_allocator_data().
|
|
|
|
21.02.2024 - Non-backward compatible
|
|
The sljit_set_put_label() function is renamed
|
|
to sljit_emit_mov_addr() and sljit_put_label
|
|
is merged into sljit_jump and removed.
|
|
|
|
01.11.2023 - Non-backward compatible
|
|
The SLJIT_ARG_TYPE_VOID definition is changed
|
|
to SLJIT_ARG_TYPE_RET_VOID to improve Windows
|
|
compatibility.
|
|
|
|
05.09.2023 - Non-backward compatible
|
|
Turn SLJIT_IMM from a flag to a single value.
|
|
|
|
10.08.2023 - Non-backward compatible
|
|
Rename SLJIT_INT_REGISTER to SLJIT_GP_REGISTER.
|
|
|
|
01.08.2023 - Non-backward compatible
|
|
A type argument is added to sljit_get_register_index
|
|
and sljit_get_float_register_index is removed.
|
|
|
|
19.07.2023 - Non-backward compatible
|
|
SLJIT_MEM_UNALIGNED_16/32 options are renamed
|
|
to SLJIT_MEM_ALIGNED_16/32 and a type argument
|
|
is added to sljit_get_float_register_index.
|
|
|
|
16.02.2022 - Non-backward compatible
|
|
The sljit_emit_cmov operation is replaced
|
|
by sljit_emit_select.
|
|
|
|
11.02.2022 - Non-backward compatible
|
|
All floating point comparisons are supported,
|
|
sljit_cmp_info return value is changed.
|
|
|
|
02.02.2022 - Backward compatible
|
|
All SLJIT_SET_* constants are
|
|
even numbers.
|
|
|
|
27.01.2022 - Non-backward compatible
|
|
The arguments of sljit_emit_shift_into
|
|
are changed.
|
|
|
|
17.12.2022 - Non-backward compatible
|
|
Replace sljit_emit_fast_enter and
|
|
sljit_get_return_address with
|
|
sljit_emit_op_dst.
|
|
|
|
13.12.2022 - Non-backward compatible
|
|
Replace SLJIT_NOT with SLJIT_XOR.
|
|
|
|
10.11.2022 - Non-backward compatible
|
|
Extract the pre/post update operations from
|
|
sljit_emit_mem to sljit_emit_mem_update
|
|
and sljit_emit_fmem to sljit_emit_fmem_update.
|
|
|
|
04.11.2022 - Non-backward compatible
|
|
The SLJIT_32 flag is combined with the type
|
|
argument of cmov, not the dst_reg.
|
|
|
|
16.06.2022 - Non-backward compatible
|
|
Remove SLJIT_ENTER_CDECL and SLJIT_CALL_CDECL.
|
|
The default calling mode is cdecl now.
|
|
|
|
21.04.2022 - Non-backward compatible
|
|
Floating point comparison types are renamed.
|
|
|
|
01.03.2022 - Non-backward compatible
|
|
Remove SLJIT_NEG. Instead subtraction from
|
|
immedate 0 is preferred.
|
|
|
|
31.01.2022 - Non-backward compatible
|
|
The SLJIT_CURRENT_FLAGS_ADD_SUB option is
|
|
split into SLJIT_CURRENT_FLAGS_ADD and
|
|
SLJIT_CURRENT_FLAGS_SUB.
|
|
|
|
27.02.2022 - Non-backward compatible
|
|
The SLJIT_F64_ALIGNMENT option is removed.
|
|
|
|
17.02.2022 - Non-backward compatible
|
|
Many floating point operations may destroy flags.
|
|
|
|
06.02.2022 - Non-backward compatible
|
|
The SLJIT_FUNC_OFFSET macro is renamed to SLJIT_FUNC_ADDR.
|
|
Furthermore a new SLJIT_FUNC_UADDR macro is added which
|
|
returns with an unsigned address.
|
|
|
|
01.02.2022 - Non-backward compatible
|
|
Rework function argument list descriptor macros used by
|
|
sljit_emit_enter, sljit_set_context, sljit_emit_call,
|
|
and sljit_emit_icall functions.
|
|
|
|
25.01.2022 - Non-backward compatible
|
|
Change SLJIT_I32_OP and SLJIT_F32_OP to SLJIT_32.
|
|
|
|
24.01.2022 - Non-backward compatible
|
|
The SLJIT_UNUSED value is replaced by sljit_emit_op2u and
|
|
sljit_emit_return_void functions.
|
|
|
|
27.05.2021 - Non-backward compatible
|
|
The comparison types with the 32 suffix are removed from the
|
|
project. The sljit_set_current_flags has a new flag which
|
|
must be set when the flags are set by a 32 bit operation.
|
|
|
|
04.05.2021 - Non-backward compatible
|
|
The mul overflow comparison type is removed from the project
|
|
and the normal overflow type should be used instead.
|
|
|
|
28.04.2021 - Non-backward compatible
|
|
The current_flags argument of sljit_set_current_flags must
|
|
provide information about the instructions which set the CPU
|
|
status flags.
|
|
|
|
16.08.2020 - Non-backward compatible
|
|
A second parameter has been added to sljit_create_compiler()
|
|
and sljit_free_code() to pass some data to the executable
|
|
allocator functions.
|
|
|
|
24.01.2020 - Non-backward compatible
|
|
The SLJIT_MOV instructions does not support SLJIT_UNDEFINED
|
|
as destination. New prefetch instructions has been added
|
|
instead.
|
|
|
|
20.01.2019 - Non-backward compatible
|
|
The check_sljit_emit_fast_return function is removed, and
|
|
this operation is available through check_sljit_emit_op_src.
|
|
|
|
16.01.2019 - Backward compatible
|
|
A new opcode (SLJIT_ENDBR) is added to support
|
|
Intel Control-flow Enforcement Technology (CET).
|
|
|
|
08.01.2018 - Non-backward compatible
|
|
Fields of sljit_stack are renamed to fit a
|
|
top-down stack better.
|
|
|
|
02.01.2018 - Non-backward compatible
|
|
Immediate source argument has not been supported
|
|
for NOT, NEG, CLZ, and fast_return instructions
|
|
anymore. No CPU supports immedate arguments for
|
|
these opcodes.
|
|
|
|
26.12.2017 - Non-backward compatible
|
|
The MOVU opcodes are removed because the emulation
|
|
is inefficient. The sljit_emit_mem() operation is
|
|
added instead.
|
|
|
|
18.10.2017 - Non-backward compatible
|
|
The SLJIT_CALL0 - SLJIT_CALL3 jump types are
|
|
replaced by sljit_emit_call and sljit_emit_icall
|
|
function calls. These functions allows declaring
|
|
the argument types.
|
|
|
|
06.05.2017 - Non-backward compatible
|
|
Src argument is removed from sljit_emit_op_flags.
|
|
|
|
24.04.2017 - Non-backward compatible
|
|
The sljit_is_fpu_available function is replaced
|
|
by sljit_has_cpu_feature.
|
|
|
|
20.04.2017 - Non-backward compatible
|
|
x86 specific cmov is changed to a general function
|
|
|
|
27.03.2017 - Non-backward compatible
|
|
JIT stack is changed from bottom-up to top-town.
|
|
|
|
15.01.2017 - Non-backward compatible
|
|
Move with update may modifiy flags, the base register
|
|
can only be used once and [reg+reg<<shift] addressing
|
|
mode where shift > 0 is not supported anymore.
|
|
|
|
12.01.2017 - Non-backward compatible
|
|
Introducing a new flag mechanism which provides better
|
|
compatibility with CPUs without flags. Only two flags
|
|
remain: zero and variable. The current type of the
|
|
variable flag is specified by the arithmetic operator.
|
|
The SLJIT_KEEP_FLAGS is removed.
|
|
|
|
29.02.2016 - Non-backward compatible
|
|
Several types and instructions are renamed to improve
|
|
readability. In general byte, half, and int are renamed
|
|
to 8, 16, and 32. Floating point types are also renamed
|
|
from d and s to f64 and f32.
|
|
|
|
[s|u]b -> [s|u]8 (8 bit values)
|
|
[s|u]h -> [s|u]16 (16 bit values)
|
|
[s|u]i -> [s|u]32 (32 bit values)
|
|
d -> f64 (64 bit floating point value)
|
|
s -> f32 (32 bit floating point value)
|
|
|
|
18.05.2015 - Non-backward compatible
|
|
SLJIT_[I|]L[U|S]DIV is renamed to SLJIT_[I|][U|S]DIVMOD
|
|
|
|
29.09.2014 - Non-backward compatible
|
|
The sljit_create_compiler, sljit_allocate_stack, and
|
|
sljit_free_stack functions have an allocator_data
|
|
argument now.
|
|
|
|
19.09.2014 - Non-backward compatible
|
|
Using I, D, S prefixes in conditional and floating
|
|
point operations. And an L prefix to long multiplication
|
|
and division (op0 opcodes).
|
|
|
|
11.08.2014 - Non-backward compatible
|
|
A currently unused options parameter is added to sljit_emit_enter
|
|
and sljit_set_context.
|
|
|
|
06.07.2014 - Non-backward compatible
|
|
SCRATCH registers are renamed to Rx and SAVED registers
|
|
are renamed to Sx. See the explanation of these registers
|
|
in sljitLir.h.
|
|
|
|
31.05.2014 - Non-backward compatible
|
|
SLJIT_TEMPORARY_EREGx registers were not renamed to
|
|
SLJIT_SCRATCH_EREGx when the change was done on 08.11.2012
|
|
|
|
05.03.2014 - Backward compatible
|
|
The sljit_set_target now supports those jumps, which
|
|
does not created with SLJIT_REWRITABLE_JUMP flag.
|
|
Reason: sljit_emit_ijump does not support conditional
|
|
jumps.
|
|
|
|
03.03.2014 - Non-backward compatible
|
|
SLJIT_MOV_UI cannot be combined with SLJIT_INT_OP.
|
|
Reason: SLJIT_INT_OP flag is not recommended to use
|
|
directly, and SLJIT_IMOV has no sign bit.
|
|
|
|
29.01.2014 - Backward compatible
|
|
Bits assigned to SLJIT_MEM and SLJIT_IMM flags are changed.
|
|
Reason: the most common cases are fits into one byte now,
|
|
and more registers can be supported in the future.
|
|
|
|
08.11.2012 - Non-backward compatible
|
|
SLJIT_TEMPORARY_REGx registers are renamed to SLJIT_SCRATCH_REGx.
|
|
|
|
07.11.2012 - Non-backward compatible
|
|
sljit_emit_cond_value is renamed to sljit_emit_op_flags. An
|
|
extra source argument is added which will be used in the future.
|
|
|
|
05.11.2012 - Backward compatible
|
|
sljit_emit_cond_value now supports SLJIT_AND and SLJIT_INT_OP
|
|
flags, which makes this function complete.
|
|
|
|
01.11.2012 - Non-backward compatible
|
|
SLJIT_F* opcodes are renamed to SLJIT_*D to show that
|
|
they are double precision operators. Furthermore
|
|
SLJIT_*S single precision opcodes are added.
|
|
|
|
01.11.2012 - Non-backward compatible
|
|
Register arguments of operations with SLJIT_INT_OP flag
|
|
must be computed by another operation with SLJIT_INT_OP flag.
|
|
The same way as SLJIT_SINGLE_OP flag works with floating point
|
|
numbers. See the description of SLJIT_INT_OP.
|
|
|
|
01.11.2012 - Backward compatible
|
|
All operations whose support the SLJIT_INT_OP flag, have an
|
|
alternate name now, which includes the SLJIT_INT_OP. These
|
|
names starting with I.
|
|
|
|
31.10.2012 - Non-backward compatible
|
|
Renaming sljit_w to sljit_sw, sljit_i to sljit_si, sljit_h
|
|
to sljit_sh, and sljit_b to sljit_sb. Reason: their sign
|
|
bit is part of the type now.
|
|
|
|
20.10.2012 - Non-backward compatible
|
|
Renaming SLJIT_C_FLOAT_NAN to SLJIT_C_FLOAT_UNORDERED.
|
|
Reason: all architectures call these unordered comparions.
|