Remove immediate arg support for NOT, NEG, and CLZ.
[sljit.git] / API_CHANGES
blob2b7dd01e9264dc2d12675f9e68bf0367549f1a37
1 This file is the short summary of the API changes:
3 02.01.2018 - Non-backward compatible
4     Immediate source argument has not been supported
5     for NOT, NEG, and CLZ opcodes anymore. No CPU
6     supports immedate arguments for these opcodes.
8 26.12.2017 - Non-backward compatible
9     The MOVU opcodes are removed because the emulation
10     is inefficient. The sljit_emit_mem() operation is
11     added instead.
13 18.10.2017 - Non-backward compatible
14     The SLJIT_CALL0 - SLJIT_CALL3 jump types are
15     replaced by sljit_emit_call and sljit_emit_icall
16     function calls. These functions allows declaring
17     the argument types.
19 06.05.2017 - Non-backward compatible
20     Src argument is removed from sljit_emit_op_flags.
22 24.04.2017 - Non-backward compatible
23     The sljit_is_fpu_available function is replaced
24     by sljit_has_cpu_feature.
26 20.04.2017 - Non-backward compatible
27     x86 specific cmov is changed to a general function
29 27.03.2017 - Non-backward compatible
30     JIT stack is changed from bottom-up to top-town.
32 15.01.2017 - Non-backward compatible
33     Move with update may modifiy flags, the base register
34     can only be used once and [reg+reg<<shift] addressing
35     mode where shift > 0 is not supported anymore.
37 12.01.2017 - Non-backward compatible
38     Introducing a new flag mechanism which provides better
39     compatibility with CPUs without flags. Only two flags
40     remain: zero and variable. The current type of the
41     variable flag is specified by the arithmetic operator.
42     The SLJIT_KEEP_FLAGS is removed.
44 29.02.2016 - Non-backward compatible
45     Several types and instructions are renamed to improve
46     readability. In general byte, half, and int are renamed
47     to 8, 16, and 32. Floating point types are also renamed
48     from d and s to f64 and f32.
50       [s|u]b -> [s|u]8    (8 bit values)
51       [s|u]h -> [s|u]16   (16 bit values)
52       [s|u]i -> [s|u]32   (32 bit values)
53       d -> f64            (64 bit floating point value)
54       s -> f32            (32 bit floating point value)
56 18.05.2015 - Non-backward compatible
57     SLJIT_[I|]L[U|S]DIV is renamed to SLJIT_[I|][U|S]DIVMOD
59 29.09.2014 - Non-backward compatible
60     The sljit_create_compiler, sljit_allocate_stack, and
61     sljit_free_stack functions have an allocator_data
62     argument now.
64 19.09.2014 - Non-backward compatible
65     Using I, D, S prefixes in conditional and floating
66     point operations. And an L prefix to long multiplication
67     and division (op0 opcodes).
69 11.08.2014 - Non-backward compatible
70     A currently unused options parameter is added to sljit_emit_enter
71     and sljit_set_context.
73 06.07.2014 - Non-backward compatible
74     SCRATCH registers are renamed to Rx and SAVED registers
75     are renamed to Sx. See the explanation of these registers
76     in sljitLir.h.
78 31.05.2014 - Non-backward compatible
79     SLJIT_TEMPORARY_EREGx registers were not renamed to
80     SLJIT_SCRATCH_EREGx when the change was done on 08.11.2012
82 05.03.2014 - Backward compatible
83     The sljit_set_target now supports those jumps, which
84     does not created with SLJIT_REWRITABLE_JUMP flag.
85     Reason: sljit_emit_ijump does not support conditional
86     jumps.
88 03.03.2014 - Non-backward compatible
89     SLJIT_MOV_UI cannot be combined with SLJIT_INT_OP.
90     Reason: SLJIT_INT_OP flag is not recommended to use
91     directly, and SLJIT_IMOV has no sign bit.
93 29.01.2014 - Backward compatible
94     Bits assigned to SLJIT_MEM and SLJIT_IMM flags are changed.
95     Reason: the most common cases are fits into one byte now,
96     and more registers can be supported in the future.
98 08.11.2012 - Non-backward compatible
99     SLJIT_TEMPORARY_REGx registers are renamed to SLJIT_SCRATCH_REGx.
101 07.11.2012 - Non-backward compatible
102     sljit_emit_cond_value is renamed to sljit_emit_op_flags. An
103     extra source argument is added which will be used in the future.
105 05.11.2012 - Backward compatible
106     sljit_emit_cond_value now supports SLJIT_AND and SLJIT_INT_OP
107     flags, which makes this function complete.
109 01.11.2012 - Non-backward compatible
110     SLJIT_F* opcodes are renamed to SLJIT_*D to show that
111     they are double precision operators. Furthermore
112     SLJIT_*S single precision opcodes are added.
114 01.11.2012 - Non-backward compatible
115     Register arguments of operations with SLJIT_INT_OP flag
116     must be computed by another operation with SLJIT_INT_OP flag.
117     The same way as SLJIT_SINGLE_OP flag works with floating point
118     numbers. See the description of SLJIT_INT_OP.
120 01.11.2012 - Backward compatible
121     All operations whose support the SLJIT_INT_OP flag, have an
122     alternate name now, which includes the SLJIT_INT_OP. These
123     names starting with I.
125 31.10.2012 - Non-backward compatible
126     Renaming sljit_w to sljit_sw, sljit_i to sljit_si, sljit_h
127     to sljit_sh, and sljit_b to sljit_sb. Reason: their sign
128     bit is part of the type now.
130 20.10.2012 - Non-backward compatible
131     Renaming SLJIT_C_FLOAT_NAN to SLJIT_C_FLOAT_UNORDERED.
132     Reason: all architectures call these unordered comparions.