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