From fe98486c8baef779bdf7f2f73f6ffe7ee1281822 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 16 Jan 2018 00:31:13 +0100 Subject: rename --- core.go | 10 +++++----- stack.go | 15 ++++++++------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/core.go b/core.go index 32f37fb..9a82b36 100644 --- a/core.go +++ b/core.go @@ -118,26 +118,26 @@ func (c *Core) Eval(ins Instruction) { c.st0 = c.d.pop() case ALU: if v.RtoPC { - c.pc = c.r.get() >> 1 + c.pc = c.r.peek() >> 1 } if v.NtoAtT { - c.writeAt(c.st0, c.d.get()) + c.writeAt(c.st0, c.d.peek()) } st0 := c.newST0(v.Opcode) c.d.move(v.Ddir) c.r.move(v.Rdir) if v.TtoN { - c.d.set(c.st0) + c.d.replace(c.st0) } if v.TtoR { - c.r.set(c.st0) + c.r.replace(c.st0) } c.st0 = st0 } } func (c *Core) newST0(opcode uint16) uint16 { - T, N, R := c.st0, c.d.get(), c.r.get() + T, N, R := c.st0, c.d.peek(), c.r.peek() switch opcode { case opT: // T return T diff --git a/stack.go b/stack.go index aed4e6a..c116c5a 100644 --- a/stack.go +++ b/stack.go @@ -8,24 +8,25 @@ type stack struct { } func (s *stack) move(dir int8) { - s.sp = (s.sp + dir + stackSize) % stackSize + s.sp = (s.sp + dir) & (stackSize - 1) } func (s *stack) push(v uint16) { - s.move(1) - s.set(v) + s.sp = (s.sp + 1) & (stackSize - 1) + s.data[s.sp] = v } func (s *stack) pop() uint16 { - defer s.move(-1) - return s.get() + v := s.data[s.sp] + s.sp = (s.sp - 1) & (stackSize - 1) + return v } -func (s *stack) get() uint16 { +func (s *stack) peek() uint16 { return s.data[s.sp] } -func (s *stack) set(v uint16) { +func (s *stack) replace(v uint16) { s.data[s.sp] = v } -- cgit v1.2.3