1 This file is the short summary of the API changes:
3 21.04.2022 - Non-backward compatible
4 Floating point comparison types are renamed.
6 01.03.2022 - Non-backward compatible
7 Remove SLJIT_NEG. Instead substraction from
8 immedate 0 is preferred.
10 31.01.2022 - Non-backward compatible
11 The SLJIT_CURRENT_FLAGS_ADD_SUB option is
12 split into SLJIT_CURRENT_FLAGS_ADD and
13 SLJIT_CURRENT_FLAGS_SUB.
15 27.02.2022 - Non-backward compatible
16 The SLJIT_F64_ALIGNMENT option is removed.
18 17.02.2022 - Non-backward compatible
19 Many floating point operations may destroy flags.
21 06.02.2022 - Non-backward compatible
22 The SLJIT_FUNC_OFFSET macro is renamed to SLJIT_FUNC_ADDR.
23 Furthermore a new SLJIT_FUNC_UADDR macro is added which
24 returns with an unsigned address.
26 01.02.2022 - Non-backward compatible
27 Rework function argument list descriptor macros used by
28 sljit_emit_enter, sljit_set_context, sljit_emit_call,
29 and sljit_emit_icall functions.
31 25.01.2022 - Non-backward compatible
32 Change SLJIT_I32_OP and SLJIT_F32_OP to SLJIT_32.
34 24.01.2022 - Non-backward compatible
35 The SLJIT_UNUSED value is replaced by sljit_emit_op2u and
36 sljit_emit_return_void functions.
38 27.05.2021 - Non-backward compatible
39 The comparison types with the 32 suffix are removed from the
40 project. The sljit_set_current_flags has a new flag which
41 must be set when the flags are set by a 32 bit operation.
43 04.05.2021 - Non-backward compatible
44 The mul overflow comparison type is removed from the project
45 and the normal overflow type should be used instead.
47 28.04.2021 - Non-backward compatible
48 The current_flags argument of sljit_set_current_flags must
49 provide information about the instructions which set the CPU
52 16.08.2020 - Non-backward compatible
53 A second parameter has been added to sljit_create_compiler()
54 and sljit_free_code() to pass some data to the executable
57 24.01.2020 - Non-backward compatible
58 The SLJIT_MOV instructions does not support SLJIT_UNDEFINED
59 as destination. New prefetch instructions has been added
62 20.01.2019 - Non-backward compatible
63 The check_sljit_emit_fast_return function is removed, and
64 this operation is available through check_sljit_emit_op_src.
66 16.01.2019 - Backward compatible
67 A new opcode (SLJIT_ENDBR) is added to support
68 Intel Control-flow Enforcement Technology (CET).
70 08.01.2018 - Non-backward compatible
71 Fields of sljit_stack are renamed to fit a
72 top-down stack better.
74 02.01.2018 - Non-backward compatible
75 Immediate source argument has not been supported
76 for NOT, NEG, CLZ, and fast_return instructions
77 anymore. No CPU supports immedate arguments for
80 26.12.2017 - Non-backward compatible
81 The MOVU opcodes are removed because the emulation
82 is inefficient. The sljit_emit_mem() operation is
85 18.10.2017 - Non-backward compatible
86 The SLJIT_CALL0 - SLJIT_CALL3 jump types are
87 replaced by sljit_emit_call and sljit_emit_icall
88 function calls. These functions allows declaring
91 06.05.2017 - Non-backward compatible
92 Src argument is removed from sljit_emit_op_flags.
94 24.04.2017 - Non-backward compatible
95 The sljit_is_fpu_available function is replaced
96 by sljit_has_cpu_feature.
98 20.04.2017 - Non-backward compatible
99 x86 specific cmov is changed to a general function
101 27.03.2017 - Non-backward compatible
102 JIT stack is changed from bottom-up to top-town.
104 15.01.2017 - Non-backward compatible
105 Move with update may modifiy flags, the base register
106 can only be used once and [reg+reg<<shift] addressing
107 mode where shift > 0 is not supported anymore.
109 12.01.2017 - Non-backward compatible
110 Introducing a new flag mechanism which provides better
111 compatibility with CPUs without flags. Only two flags
112 remain: zero and variable. The current type of the
113 variable flag is specified by the arithmetic operator.
114 The SLJIT_KEEP_FLAGS is removed.
116 29.02.2016 - Non-backward compatible
117 Several types and instructions are renamed to improve
118 readability. In general byte, half, and int are renamed
119 to 8, 16, and 32. Floating point types are also renamed
120 from d and s to f64 and f32.
122 [s|u]b -> [s|u]8 (8 bit values)
123 [s|u]h -> [s|u]16 (16 bit values)
124 [s|u]i -> [s|u]32 (32 bit values)
125 d -> f64 (64 bit floating point value)
126 s -> f32 (32 bit floating point value)
128 18.05.2015 - Non-backward compatible
129 SLJIT_[I|]L[U|S]DIV is renamed to SLJIT_[I|][U|S]DIVMOD
131 29.09.2014 - Non-backward compatible
132 The sljit_create_compiler, sljit_allocate_stack, and
133 sljit_free_stack functions have an allocator_data
136 19.09.2014 - Non-backward compatible
137 Using I, D, S prefixes in conditional and floating
138 point operations. And an L prefix to long multiplication
139 and division (op0 opcodes).
141 11.08.2014 - Non-backward compatible
142 A currently unused options parameter is added to sljit_emit_enter
143 and sljit_set_context.
145 06.07.2014 - Non-backward compatible
146 SCRATCH registers are renamed to Rx and SAVED registers
147 are renamed to Sx. See the explanation of these registers
150 31.05.2014 - Non-backward compatible
151 SLJIT_TEMPORARY_EREGx registers were not renamed to
152 SLJIT_SCRATCH_EREGx when the change was done on 08.11.2012
154 05.03.2014 - Backward compatible
155 The sljit_set_target now supports those jumps, which
156 does not created with SLJIT_REWRITABLE_JUMP flag.
157 Reason: sljit_emit_ijump does not support conditional
160 03.03.2014 - Non-backward compatible
161 SLJIT_MOV_UI cannot be combined with SLJIT_INT_OP.
162 Reason: SLJIT_INT_OP flag is not recommended to use
163 directly, and SLJIT_IMOV has no sign bit.
165 29.01.2014 - Backward compatible
166 Bits assigned to SLJIT_MEM and SLJIT_IMM flags are changed.
167 Reason: the most common cases are fits into one byte now,
168 and more registers can be supported in the future.
170 08.11.2012 - Non-backward compatible
171 SLJIT_TEMPORARY_REGx registers are renamed to SLJIT_SCRATCH_REGx.
173 07.11.2012 - Non-backward compatible
174 sljit_emit_cond_value is renamed to sljit_emit_op_flags. An
175 extra source argument is added which will be used in the future.
177 05.11.2012 - Backward compatible
178 sljit_emit_cond_value now supports SLJIT_AND and SLJIT_INT_OP
179 flags, which makes this function complete.
181 01.11.2012 - Non-backward compatible
182 SLJIT_F* opcodes are renamed to SLJIT_*D to show that
183 they are double precision operators. Furthermore
184 SLJIT_*S single precision opcodes are added.
186 01.11.2012 - Non-backward compatible
187 Register arguments of operations with SLJIT_INT_OP flag
188 must be computed by another operation with SLJIT_INT_OP flag.
189 The same way as SLJIT_SINGLE_OP flag works with floating point
190 numbers. See the description of SLJIT_INT_OP.
192 01.11.2012 - Backward compatible
193 All operations whose support the SLJIT_INT_OP flag, have an
194 alternate name now, which includes the SLJIT_INT_OP. These
195 names starting with I.
197 31.10.2012 - Non-backward compatible
198 Renaming sljit_w to sljit_sw, sljit_i to sljit_si, sljit_h
199 to sljit_sh, and sljit_b to sljit_sb. Reason: their sign
200 bit is part of the type now.
202 20.10.2012 - Non-backward compatible
203 Renaming SLJIT_C_FLOAT_NAN to SLJIT_C_FLOAT_UNORDERED.
204 Reason: all architectures call these unordered comparions.