1 This file is the short summary of the API changes:
3 24.01.2022 - Non-backward compatible
4 The SLJIT_UNUSED value is replaced by sljit_emit_op2u and
5 sljit_emit_return_void functions.
7 27.05.2021 - Non-backward compatible
8 The comparison types with the 32 suffix are removed from the
9 project. The sljit_set_current_flags has a new flag which
10 must be set when the flags are set by a 32 bit operation.
12 04.05.2021 - Non-backward compatible
13 The mul overflow comparison type is removed from the project
14 and the normal overflow type should be used instead.
16 28.04.2021 - Non-backward compatible
17 The current_flags argument of sljit_set_current_flags must
18 provide information about the instructions which set the CPU
21 16.08.2020 - Non-backward compatible
22 A second parameter has been added to sljit_create_compiler()
23 and sljit_free_code() to pass some data to the executable
26 24.01.2020 - Non-backward compatible
27 The SLJIT_MOV instructions does not support SLJIT_UNDEFINED
28 as destination. New prefetch instructions has been added
31 20.01.2019 - Non-backward compatible
32 The check_sljit_emit_fast_return function is removed, and
33 this operation is available through check_sljit_emit_op_src.
35 16.01.2019 - Backward compatible
36 A new opcode (SLJIT_ENDBR) is added to support
37 Intel Control-flow Enforcement Technology (CET).
39 08.01.2018 - Non-backward compatible
40 Fields of sljit_stack are renamed to fit a
41 top-down stack better.
43 02.01.2018 - Non-backward compatible
44 Immediate source argument has not been supported
45 for NOT, NEG, CLZ, and fast_return instructions
46 anymore. No CPU supports immedate arguments for
49 26.12.2017 - Non-backward compatible
50 The MOVU opcodes are removed because the emulation
51 is inefficient. The sljit_emit_mem() operation is
54 18.10.2017 - Non-backward compatible
55 The SLJIT_CALL0 - SLJIT_CALL3 jump types are
56 replaced by sljit_emit_call and sljit_emit_icall
57 function calls. These functions allows declaring
60 06.05.2017 - Non-backward compatible
61 Src argument is removed from sljit_emit_op_flags.
63 24.04.2017 - Non-backward compatible
64 The sljit_is_fpu_available function is replaced
65 by sljit_has_cpu_feature.
67 20.04.2017 - Non-backward compatible
68 x86 specific cmov is changed to a general function
70 27.03.2017 - Non-backward compatible
71 JIT stack is changed from bottom-up to top-town.
73 15.01.2017 - Non-backward compatible
74 Move with update may modifiy flags, the base register
75 can only be used once and [reg+reg<<shift] addressing
76 mode where shift > 0 is not supported anymore.
78 12.01.2017 - Non-backward compatible
79 Introducing a new flag mechanism which provides better
80 compatibility with CPUs without flags. Only two flags
81 remain: zero and variable. The current type of the
82 variable flag is specified by the arithmetic operator.
83 The SLJIT_KEEP_FLAGS is removed.
85 29.02.2016 - Non-backward compatible
86 Several types and instructions are renamed to improve
87 readability. In general byte, half, and int are renamed
88 to 8, 16, and 32. Floating point types are also renamed
89 from d and s to f64 and f32.
91 [s|u]b -> [s|u]8 (8 bit values)
92 [s|u]h -> [s|u]16 (16 bit values)
93 [s|u]i -> [s|u]32 (32 bit values)
94 d -> f64 (64 bit floating point value)
95 s -> f32 (32 bit floating point value)
97 18.05.2015 - Non-backward compatible
98 SLJIT_[I|]L[U|S]DIV is renamed to SLJIT_[I|][U|S]DIVMOD
100 29.09.2014 - Non-backward compatible
101 The sljit_create_compiler, sljit_allocate_stack, and
102 sljit_free_stack functions have an allocator_data
105 19.09.2014 - Non-backward compatible
106 Using I, D, S prefixes in conditional and floating
107 point operations. And an L prefix to long multiplication
108 and division (op0 opcodes).
110 11.08.2014 - Non-backward compatible
111 A currently unused options parameter is added to sljit_emit_enter
112 and sljit_set_context.
114 06.07.2014 - Non-backward compatible
115 SCRATCH registers are renamed to Rx and SAVED registers
116 are renamed to Sx. See the explanation of these registers
119 31.05.2014 - Non-backward compatible
120 SLJIT_TEMPORARY_EREGx registers were not renamed to
121 SLJIT_SCRATCH_EREGx when the change was done on 08.11.2012
123 05.03.2014 - Backward compatible
124 The sljit_set_target now supports those jumps, which
125 does not created with SLJIT_REWRITABLE_JUMP flag.
126 Reason: sljit_emit_ijump does not support conditional
129 03.03.2014 - Non-backward compatible
130 SLJIT_MOV_UI cannot be combined with SLJIT_INT_OP.
131 Reason: SLJIT_INT_OP flag is not recommended to use
132 directly, and SLJIT_IMOV has no sign bit.
134 29.01.2014 - Backward compatible
135 Bits assigned to SLJIT_MEM and SLJIT_IMM flags are changed.
136 Reason: the most common cases are fits into one byte now,
137 and more registers can be supported in the future.
139 08.11.2012 - Non-backward compatible
140 SLJIT_TEMPORARY_REGx registers are renamed to SLJIT_SCRATCH_REGx.
142 07.11.2012 - Non-backward compatible
143 sljit_emit_cond_value is renamed to sljit_emit_op_flags. An
144 extra source argument is added which will be used in the future.
146 05.11.2012 - Backward compatible
147 sljit_emit_cond_value now supports SLJIT_AND and SLJIT_INT_OP
148 flags, which makes this function complete.
150 01.11.2012 - Non-backward compatible
151 SLJIT_F* opcodes are renamed to SLJIT_*D to show that
152 they are double precision operators. Furthermore
153 SLJIT_*S single precision opcodes are added.
155 01.11.2012 - Non-backward compatible
156 Register arguments of operations with SLJIT_INT_OP flag
157 must be computed by another operation with SLJIT_INT_OP flag.
158 The same way as SLJIT_SINGLE_OP flag works with floating point
159 numbers. See the description of SLJIT_INT_OP.
161 01.11.2012 - Backward compatible
162 All operations whose support the SLJIT_INT_OP flag, have an
163 alternate name now, which includes the SLJIT_INT_OP. These
164 names starting with I.
166 31.10.2012 - Non-backward compatible
167 Renaming sljit_w to sljit_sw, sljit_i to sljit_si, sljit_h
168 to sljit_sh, and sljit_b to sljit_sb. Reason: their sign
169 bit is part of the type now.
171 20.10.2012 - Non-backward compatible
172 Renaming SLJIT_C_FLOAT_NAN to SLJIT_C_FLOAT_UNORDERED.
173 Reason: all architectures call these unordered comparions.