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