# HG changeset patch # User lost@l-w.ca # Date 1301962651 21600 # Node ID c42d6dc7df68bf710a8d278d27ea91941b797ea6 # Parent 1bff302e62a3ea91d0819949858413d91a102c4a Fixed code generation error with indirect indexing using 8 or 16 bit offsets from X,Y,U,S diff -r 1bff302e62a3 -r c42d6dc7df68 lwasm/insn_indexed.c --- a/lwasm/insn_indexed.c Mon Apr 04 18:05:18 2011 -0600 +++ b/lwasm/insn_indexed.c Mon Apr 04 18:17:31 2011 -0600 @@ -349,7 +349,7 @@ case 1: case 2: case 3: - pb = 0x89 | ((l -> pb & 0x03) << 5) | (0x10 * (l -> pb & 0x80)); + pb = 0x89 | ((l -> pb & 0x03) << 5) | ((l -> pb & 0x80) ? 0x10 : 0); break; case 4: // W @@ -377,7 +377,7 @@ case 1: case 2: case 3: - pb = 0x88 | ((l -> pb & 0x03) << 5) | (0x10 * (l -> pb & 0x80)); + pb = 0x88 | ((l -> pb & 0x03) << 5) | ((l -> pb & 0x80) ? 0x10 : 0); break; case 4: // W @@ -436,7 +436,7 @@ case 1: case 2: case 3: - pb = 0x89 | (l -> pb & 0x03) << 5 | (0x10 * (l -> pb & 0x80)); + pb = 0x89 | (l -> pb & 0x03) << 5 | ((l -> pb & 0x80) ? 0x10 : 0); break; case 4: // W @@ -462,7 +462,7 @@ case 1: case 2: case 3: - pb = 0x88 | (l -> pb & 0x03) << 5 | (0x10 * (l -> pb & 0x80)); + pb = 0x88 | (l -> pb & 0x03) << 5 | ((l -> pb & 0x80) ? 0x10 : 0); break; case 4: // W