comparison fallbacks/bit.lua @ 7505:3d950ee0de35

Merge 0.10->trunk
author Kim Alvefur <zash@zash.se>
date Thu, 14 Jul 2016 13:41:02 +0200
parents b4f781ed7045
children
comparison
equal deleted inserted replaced
7497:22942eda53f8 7505:3d950ee0de35
66 t[i] = t_i; 66 t[i] = t_i;
67 end 67 end
68 end 68 end
69 function rshift(a, i) 69 function rshift(a, i)
70 local t = {a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]}; 70 local t = {a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]};
71 for n = 1,i do _rshift1(t); end 71 for _ = 1, i do _rshift1(t); end
72 return setmetatable(t, bit_mt); 72 return setmetatable(t, bit_mt);
73 end 73 end
74 local function _arshift1(t) 74 local function _arshift1(t)
75 local carry = arshift1carry_map[t[1]]; 75 local carry = arshift1carry_map[t[1]];
76 for i=1,8 do 76 for i=1,8 do
79 t[i] = t_i; 79 t[i] = t_i;
80 end 80 end
81 end 81 end
82 function arshift(a, i) 82 function arshift(a, i)
83 local t = {a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]}; 83 local t = {a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]};
84 for n = 1,i do _arshift1(t); end 84 for _ = 1, i do _arshift1(t); end
85 return setmetatable(t, bit_mt); 85 return setmetatable(t, bit_mt);
86 end 86 end
87 local function _lshift1(t) 87 local function _lshift1(t)
88 local carry = 0; 88 local carry = 0;
89 for i=8,1,-1 do 89 for i=8,1,-1 do
92 t[i] = t_i; 92 t[i] = t_i;
93 end 93 end
94 end 94 end
95 function lshift(a, i) 95 function lshift(a, i)
96 local t = {a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]}; 96 local t = {a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]};
97 for n = 1,i do _lshift1(t); end 97 for _ = 1, i do _lshift1(t); end
98 return setmetatable(t, bit_mt); 98 return setmetatable(t, bit_mt);
99 end 99 end
100 100
101 local function _cast(a) 101 local function _cast(a)
102 if type(a) == "number" then a = ("%x"):format(a); 102 if type(a) == "number" then a = ("%x"):format(a);