From 34141270f4a6fd17c4020ed713f86f41f56e3916 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 4 Dec 2017 17:40:03 +0100 Subject: bool2int --- eval.go | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) (limited to 'eval.go') diff --git a/eval.go b/eval.go index 3f1cb8b..e6c515b 100644 --- a/eval.go +++ b/eval.go @@ -105,6 +105,13 @@ func (j1 *J1) eval(ins Instruction) { } } +func bool2int(b bool) uint16 { + if b { + return 1 + } + return 0 +} + func (j1 *J1) newST0(opcode uint16) uint16 { T, N, R := j1.st0, j1.dstack[j1.dsp], j1.rstack[j1.rsp] switch opcode { @@ -123,15 +130,9 @@ func (j1 *J1) newST0(opcode uint16) uint16 { case opNotT: // ~T return ^T case opNeqT: // N==T - if N == T { - return 1 - } - return 0 + return bool2int(N == T) case opNleT: // N>T return N >> (T & 0xf) case opTminus1: // T-1 @@ -145,10 +146,7 @@ func (j1 *J1) newST0(opcode uint16) uint16 { case opDepth: // depth (dsp) return (uint16(j1.rsp) << 8) | uint16(j1.dsp) case opNuleT: // Nu