parsav  Diff

Differences From Artifact [12858be43d]:

To Artifact [60b64e2aea]:


1
2
3
4
5
6
7

8
9
10
11
12
13
14
..
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
-- vim: ft=terra
local m = {
	shorthand = {maxlen = 14};
	ll = {
		ctpop_u8 = terralib.intrinsic('llvm.ctpop.i8', uint8 -> uint8);
	};
}


local pstring = lib.mem.ptr(int8)

-- swap in place -- faster on little endian
m.netswap_ip = macro(function(ty, src, dest)
	if ty:astype().type ~= 'integer' then error('bad type') end
	local bytes = ty:astype().bytes
................................................................................
	var o = n
	for i=0,fac do n = n * o end
	return n
end

terra m.shorthand.gen(val: uint64, dest: rawstring): ptrdiff
	var lst = "0123456789-ABCDEFGHIJKLMNOPQRSTUVWXYZ:abcdefghijklmnopqrstuvwxyz"
	var buf: int8[m.shorthand.maxlen]
	var ptr = [&int8](buf)
	while val ~= 0 do
		var v = val % 64
		@ptr = lst[v]
		ptr = ptr + 1
		val = val / 64
	end



<
<
<

>







 







|







1
2
3



4
5
6
7
8
9
10
11
12
..
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
-- vim: ft=terra
local m = {
	shorthand = {maxlen = 14};



}
m.shorthand.t = int8[m.shorthand.maxlen]

local pstring = lib.mem.ptr(int8)

-- swap in place -- faster on little endian
m.netswap_ip = macro(function(ty, src, dest)
	if ty:astype().type ~= 'integer' then error('bad type') end
	local bytes = ty:astype().bytes
................................................................................
	var o = n
	for i=0,fac do n = n * o end
	return n
end

terra m.shorthand.gen(val: uint64, dest: rawstring): ptrdiff
	var lst = "0123456789-ABCDEFGHIJKLMNOPQRSTUVWXYZ:abcdefghijklmnopqrstuvwxyz"
	var buf: m.shorthand.t
	var ptr = [&int8](buf)
	while val ~= 0 do
		var v = val % 64
		@ptr = lst[v]
		ptr = ptr + 1
		val = val / 64
	end