Remove 32 suffix from comparison types.
[sljit.git] / API_CHANGES
blobf0a67d7b9df79d498822b7b7328bf8b88736cf05
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
15     status flags.
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
20     allocator functions.
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
25     instead.
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
43     these opcodes.
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
48     added instead.
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
54     the argument types.
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
99     argument now.
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
113     in sljitLir.h.
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
123     jumps.
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.