more optimizations: move port states into gates, inline net queue checks

This commit is contained in:
Redo0
2021-06-05 18:41:50 -05:00
parent 14c61e35d1
commit 19d2e36fd6
6 changed files with 38 additions and 44 deletions

View File

@@ -17,17 +17,15 @@ PortDirections = {
Port = {}
function Port.new(type, direction, position, causeupdate, idx)
function Port.new(type, direction, position, causeupdate, idx, gate)
local o = {
--state = ffi.new("long long", 0),
state = 0,
group = nil,
type = type,
direction = direction,
position = position,
causeupdate = causeupdate,
gate = nil,
gate = gate,
idx = idx,
}
return o
@@ -50,12 +48,9 @@ function Port.getgate(port)
return port.gate
end
function Port.setgate(port, gate)
port.gate = gate
end
function Port.setgroup(port, group)
port.group = group
--Port.getgate(port)[port.idx*2] = group
Port.getgate(port).port_nets[port.idx] = group
end
@@ -68,5 +63,5 @@ function Port.gettype(port)
end
function Port.getstate(port)
return port.state
return Port.getgate(port).port_states[port.idx]
end