function luaK.codenot(q,G,t)q:dischargevars(G,t)local U=t.k if U=="\086\078\073\076"or U=="\086\070\065\076\083\069"then t.k="\086\084\082\085\069"elseif U=="\086\075"or U=="\086\075\078\085\077"or U=="\086\084\082\085\069"then t.k="\086\070\065\076\083\069"elseif U=="\086\074\077\080"then q:invertjump(G,t)elseif U=="\086\082\069\076\079\067\065\066\076\069"or U=="\086\078\079\078\082\069\076\079\067"then q:discharge2anyreg(G,t)q:freeexp(G,t)t.info=q:codeABC(G,"\079\080\095\078\079\084",0,t.info,0)t.k="\086\082\069\076\079\067\065\066\076\069"else assert(0)end t.f,t.t=t.t,t.f q:removevalues(G,t.f)q:removevalues(G,t.t)end
------------------------------------------------------------------------
--
-- * used only in luaK:prefix()
------------------------------------------------------------------------
function luaK:codenot(fs, e)
	self:dischargevars(fs, e)
	local k = e.k
	if k == "VNIL" or k == "VFALSE" then
		e.k = "VTRUE"
	elseif k == "VK" or k == "VKNUM" or k == "VTRUE" then
		e.k = "VFALSE"
	elseif k == "VJMP" then
		self:invertjump(fs, e)
	elseif k == "VRELOCABLE" or k == "VNONRELOC" then
		self:discharge2anyreg(fs, e)
		self:freeexp(fs, e)
		e.info = self:codeABC(fs, "OP_NOT", 0, e.info, 0)
		e.k = "VRELOCABLE"
	else
		assert(0) -- cannot happen
	end
	-- interchange true and false lists
	e.f, e.t = e.t, e.f
	self:removevalues(fs, e.f)
	self:removevalues(fs, e.t)
end
