mirror of
https://github.com/nickmqb/wyre.git
synced 2025-12-06 02:30:42 -08:00
Fix bugs
This commit is contained in:
parent
005125c6ab
commit
18adda70a9
3 changed files with 7 additions and 2 deletions
|
|
@ -73,6 +73,8 @@ Emulator {
|
|||
stack: new List<Value>{},
|
||||
}
|
||||
|
||||
s.stack.reserve(256)
|
||||
|
||||
EmulatorAllocator.top(s, top)
|
||||
|
||||
commitValues(s)
|
||||
|
|
@ -288,9 +290,9 @@ EmulatorStep {
|
|||
emiti(s, Opcode.load, si)
|
||||
}
|
||||
AssignStatement: {
|
||||
si := s.inst.localState[node.localId] + max(s.evalCtxField, 0)
|
||||
si := s.inst.localState[node.localId]
|
||||
if si >= 0 {
|
||||
emiti(s, Opcode.load, si)
|
||||
emiti(s, Opcode.load, si + max(s.evalCtxField, 0))
|
||||
} else {
|
||||
expression(s, node.expr)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -175,6 +175,8 @@ TypeChecker {
|
|||
|
||||
ensureStructDone(s TypeCheckerState, def StructDef) {
|
||||
if def.flags & StructFlags.typeCheckDone != 0 {
|
||||
// OK
|
||||
} else {
|
||||
prev := pushContext(s, def.unit, null)
|
||||
struct_(s, def)
|
||||
restoreContext(s, prev)
|
||||
|
|
|
|||
|
|
@ -73,6 +73,7 @@ VerilogGenerator {
|
|||
s.globals.add("inout")
|
||||
s.globals.add("case")
|
||||
s.globals.add("signed")
|
||||
s.globals.add("cell")
|
||||
|
||||
for u in s.comp.units {
|
||||
for node in u.contents {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue