Adding support for RXE mode instructions

This commit is contained in:
niravthakkar 2016-12-14 12:29:46 +05:30 committed by GitHub
parent fc5874c951
commit 2f96ca3d91

View File

@ -1162,8 +1162,11 @@ map_op = {
unpku_2 = "e20000000000SS-a", unpku_2 = "e20000000000SS-a",
xc_2 = "d70000000000SS-a", xc_2 = "d70000000000SS-a",
ap_2 = "fa0000000000SS-b", ap_2 = "fa0000000000SS-b",
-- RRF-e instructions
cfebr_3 = "0000b3980000RRF-e", cfebr_3 = "0000b3980000RRF-e",
cfebra_4 = "0000b3980000RRF-e", cfebra_4 = "0000b3980000RRF-e",
-- RXE instructions
sqdb_2 = "ed0000000015RXE",
} }
for cond,c in pairs(map_cond) do for cond,c in pairs(map_cond) do
-- Extended mnemonics for branches. -- Extended mnemonics for branches.
@ -1280,6 +1283,15 @@ local function parse_template(params, template, nparams, pos)
op2 = op2 + shl(parse_mask2(params[4]),8) op2 = op2 + shl(parse_mask2(params[4]),8)
end end
wputhw(op2) wputhw(op2)
elseif p == "RXE" then
local d, x, b, a = parse_mem_bx(params[2])
op0 = op0 + shl(parse_reg(params[1]), 4) + x
op1 = op1 + shl(b, 12) + d
-- m3 is not present, so assumed its not part of the instruction since its not passed as a prameter
wputhw(op0);
wputhw(op1);
if a then a() end
wputhw(op2);
elseif p == "w" then elseif p == "w" then
local mode, n, s = parse_label(params[1]) local mode, n, s = parse_label(params[1])
wputhw(op1) wputhw(op1)