From a36287b218b11e5f6c98976881f7e1e9215b6428 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Tue, 14 Sep 2010 00:00:31 +0200 Subject: [PATCH] PPC: Add better diagnostics to DynASM for reg/imm mismatches. --- dynasm/dasm_ppc.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dynasm/dasm_ppc.lua b/dynasm/dasm_ppc.lua index 0511a4b5..15c1a989 100644 --- a/dynasm/dasm_ppc.lua +++ b/dynasm/dasm_ppc.lua @@ -849,7 +849,7 @@ end ------------------------------------------------------------------------------ local function parse_gpr(expr) - local tname, ovreg = match(expr, "^([%w_]+):(r[0-9][0-9]?)$") + local tname, ovreg = match(expr, "^([%w_]+):(r[1-3]?[0-9])$") local tp = map_type[tname or expr] if tp then local reg = ovreg or tp.reg @@ -907,6 +907,9 @@ local function parse_imm(imm, bits, shift, scale, signed) end end werror("out of range immediate `"..imm.."'") + elseif match(imm, "^r([1-3]?[0-9])$") or + match(imm, "^([%w_]+):(r[1-3]?[0-9])$") then + werror("expected immediate operand, got register") else waction("IMM", (signed and 32768 or 0)+scale*1024+bits*32+shift, imm) return 0