API_CHANGES revision 1.1.1.3 1 1.1 alnsn This file is the short summary of the API changes:
2 1.1 alnsn
3 1.1.1.3 alnsn 27.03.2017 - Non-backward compatible
4 1.1.1.3 alnsn JIT stack is changed from bottom-up to top-town.
5 1.1.1.3 alnsn
6 1.1.1.3 alnsn 15.01.2017 - Non-backward compatible
7 1.1.1.3 alnsn Move with update may modifiy flags, the base register
8 1.1.1.3 alnsn can only be used once and [reg+reg<<shift] addressing
9 1.1.1.3 alnsn mode where shift > 0 is not supported anymore.
10 1.1.1.3 alnsn
11 1.1.1.3 alnsn 12.01.2017 - Non-backward compatible
12 1.1.1.3 alnsn Introducing a new flag mechanism which provides better
13 1.1.1.3 alnsn compatibility with CPUs without flags. Only two flags
14 1.1.1.3 alnsn remain: zero and variable. The current type of the
15 1.1.1.3 alnsn variable flag is specified by the arithmetic operator.
16 1.1.1.3 alnsn The SLJIT_KEEP_FLAGS is removed.
17 1.1.1.3 alnsn
18 1.1.1.2 alnsn 29.02.2016 - Non-backward compatible
19 1.1.1.2 alnsn Several types and instructions are renamed to improve
20 1.1.1.2 alnsn readability. In general byte, half, and int are renamed
21 1.1.1.2 alnsn to 8, 16, and 32. Floating point types are also renamed
22 1.1.1.2 alnsn from d and s to f64 and f32.
23 1.1.1.2 alnsn
24 1.1.1.2 alnsn [s|u]b -> [s|u]8 (8 bit values)
25 1.1.1.2 alnsn [s|u]h -> [s|u]16 (16 bit values)
26 1.1.1.2 alnsn [s|u]i -> [s|u]32 (32 bit values)
27 1.1.1.2 alnsn d -> f64 (64 bit floating point value)
28 1.1.1.2 alnsn s -> f32 (32 bit floating point value)
29 1.1.1.2 alnsn
30 1.1.1.2 alnsn 18.05.2015 - Non-backward compatible
31 1.1.1.2 alnsn SLJIT_[I|]L[U|S]DIV is renamed to SLJIT_[I|][U|S]DIVMOD
32 1.1.1.2 alnsn
33 1.1.1.2 alnsn 29.09.2014 - Non-backward compatible
34 1.1.1.2 alnsn The sljit_create_compiler, sljit_allocate_stack, and
35 1.1.1.2 alnsn sljit_free_stack functions have an allocator_data
36 1.1.1.2 alnsn argument now.
37 1.1.1.2 alnsn
38 1.1.1.2 alnsn 19.09.2014 - Non-backward compatible
39 1.1.1.2 alnsn Using I, D, S prefixes in conditional and floating
40 1.1.1.2 alnsn point operations. And an L prefix to long multiplication
41 1.1.1.2 alnsn and division (op0 opcodes).
42 1.1.1.2 alnsn
43 1.1.1.2 alnsn 11.08.2014 - Non-backward compatible
44 1.1.1.2 alnsn A currently unused options parameter is added to sljit_emit_enter
45 1.1.1.2 alnsn and sljit_set_context.
46 1.1.1.2 alnsn
47 1.1.1.2 alnsn 06.07.2014 - Non-backward compatible
48 1.1.1.2 alnsn SCRATCH registers are renamed to Rx and SAVED registers
49 1.1.1.2 alnsn are renamed to Sx. See the explanation of these registers
50 1.1.1.2 alnsn in sljitLir.h.
51 1.1.1.2 alnsn
52 1.1.1.2 alnsn 31.05.2014 - Non-backward compatible
53 1.1.1.2 alnsn SLJIT_TEMPORARY_EREGx registers were not renamed to
54 1.1.1.2 alnsn SLJIT_SCRATCH_EREGx when the change was done on 08.11.2012
55 1.1.1.2 alnsn
56 1.1 alnsn 05.03.2014 - Backward compatible
57 1.1 alnsn The sljit_set_target now supports those jumps, which
58 1.1 alnsn does not created with SLJIT_REWRITABLE_JUMP flag.
59 1.1 alnsn Reason: sljit_emit_ijump does not support conditional
60 1.1 alnsn jumps.
61 1.1 alnsn
62 1.1 alnsn 03.03.2014 - Non-backward compatible
63 1.1 alnsn SLJIT_MOV_UI cannot be combined with SLJIT_INT_OP.
64 1.1 alnsn Reason: SLJIT_INT_OP flag is not recommended to use
65 1.1 alnsn directly, and SLJIT_IMOV has no sign bit.
66 1.1 alnsn
67 1.1 alnsn 29.01.2014 - Backward compatible
68 1.1 alnsn Bits assigned to SLJIT_MEM and SLJIT_IMM flags are changed.
69 1.1 alnsn Reason: the most common cases are fits into one byte now,
70 1.1 alnsn and more registers can be supported in the future.
71 1.1 alnsn
72 1.1 alnsn 08.11.2012 - Non-backward compatible
73 1.1 alnsn SLJIT_TEMPORARY_REGx registers are renamed to SLJIT_SCRATCH_REGx.
74 1.1 alnsn
75 1.1 alnsn 07.11.2012 - Non-backward compatible
76 1.1 alnsn sljit_emit_cond_value is renamed to sljit_emit_op_flags. An
77 1.1 alnsn extra source argument is added which will be used in the future.
78 1.1 alnsn
79 1.1 alnsn 05.11.2012 - Backward compatible
80 1.1 alnsn sljit_emit_cond_value now supports SLJIT_AND and SLJIT_INT_OP
81 1.1 alnsn flags, which makes this function complete.
82 1.1 alnsn
83 1.1 alnsn 01.11.2012 - Non-backward compatible
84 1.1 alnsn SLJIT_F* opcodes are renamed to SLJIT_*D to show that
85 1.1 alnsn they are double precision operators. Furthermore
86 1.1 alnsn SLJIT_*S single precision opcodes are added.
87 1.1 alnsn
88 1.1 alnsn 01.11.2012 - Non-backward compatible
89 1.1 alnsn Register arguments of operations with SLJIT_INT_OP flag
90 1.1 alnsn must be computed by another operation with SLJIT_INT_OP flag.
91 1.1 alnsn The same way as SLJIT_SINGLE_OP flag works with floating point
92 1.1 alnsn numbers. See the description of SLJIT_INT_OP.
93 1.1 alnsn
94 1.1 alnsn 01.11.2012 - Backward compatible
95 1.1 alnsn All operations whose support the SLJIT_INT_OP flag, have an
96 1.1 alnsn alternate name now, which includes the SLJIT_INT_OP. These
97 1.1 alnsn names starting with I.
98 1.1 alnsn
99 1.1 alnsn 31.10.2012 - Non-backward compatible
100 1.1 alnsn Renaming sljit_w to sljit_sw, sljit_i to sljit_si, sljit_h
101 1.1 alnsn to sljit_sh, and sljit_b to sljit_sb. Reason: their sign
102 1.1 alnsn bit is part of the type now.
103 1.1 alnsn
104 1.1 alnsn 20.10.2012 - Non-backward compatible
105 1.1 alnsn Renaming SLJIT_C_FLOAT_NAN to SLJIT_C_FLOAT_UNORDERED.
106 1.1 alnsn Reason: all architectures call these unordered comparions.
107