Lines Matching refs:op
478 local function parse_load(params, nparams, n, op)
480 local scale = shr(op, 30)
490 return op + base
498 op = op + parse_reg_base(p1) + parse_imm(p2, 9, 12, 0, true) + 0x400
502 op = op + parse_reg_base(p1a) + parse_imm(p2a, 9, 12, 0, true) + 0xc00
505 op = op + parse_reg_base(p1a)
509 op = op + parse_imm_load(imm, scale)
512 op = op + parse_reg(p2b, 16) + 0x00200800
518 op = op + 0x6000
522 op = op + 0x1000
527 if p3b == "lsl" and p3s ~= "" then op = op + 0x6000
528 elseif p3b == "sxtx" then op = op + 0xe000
533 if p3b == "uxtw" then op = op + 0x4000
534 elseif p3b == "sxtw" then op = op + 0xc000
543 op = op + 0x01000000
546 return op
549 local function parse_load_pair(params, nparams, n, op)
552 local scale = 2 + shr(op, 31 - band(shr(op, 26), 1))
561 return op + base + 0x01000000
569 op = op + 0x00800000
573 op = op + (wb == "!" and 0x01800000 or 0x01000000)
575 return op + parse_reg_base(p1) + parse_imm(p2, 7, 15, scale, true)
611 local function branch_type(op)
612 if band(op, 0x7c000000) == 0x14000000 then return 0 -- B, BL
613 elseif shr(op, 24) == 0x54 or band(op, 0x7e000000) == 0x34000000 or
614 band(op, 0x3b000000) == 0x18000000 then
616 elseif band(op, 0x7e000000) == 0x36000000 then return 0x1000 -- TBZ, TBNZ
617 elseif band(op, 0x9f000000) == 0x10000000 then return 0x2000 -- ADR
618 elseif band(op, 0x9f000000) == band(0x90000000) then return 0x3000 -- ADRP
909 local op = tonumber(template:sub(1, 8), 16)
919 op = op + parse_reg(q, 0); n = n + 1
921 op = op + parse_reg(q, 5); n = n + 1
923 op = op + parse_reg(q, 16); n = n + 1
925 op = op + parse_reg(q, 10); n = n + 1
927 op = op + parse_reg(params[n-1], 16)
933 op = op + 0x80000000
940 op = op + 0x00400000
952 op = parse_load(params, nparams, n, op)
954 op = parse_load_pair(params, nparams, n, op)
959 local m = branch_type(op)
968 op = op + parse_imm12(q); n = n + 1
970 op = op + parse_imm13(q); n = n + 1
972 op = op + parse_imm(q, 16, 5, 0, false); n = n + 1
974 op = op + parse_imm6(q); n = n + 1
976 op = op + parse_imm(q, 6, 16, 0, false); n = n + 1
978 op = op + parse_imm(q, 6, 10, 0, false); n = n + 1
980 op = op + parse_imm(q, 5, 16, 0, false); n = n + 1
982 op = op + parse_imm(q, 4, 0, 0, false); n = n + 1
984 op = op + parse_fpimm(q); n = n + 1
990 op = op + parse_shift(q); n = n + 1
992 op = op + parse_extend(q); n = n + 1
994 op = op + parse_lslx16(q); n = n + 1
996 op = op + parse_cond(q, 0); n = n + 1
998 op = op + parse_cond(q, 1); n = n + 1
1004 wputpos(pos, op)
1081 local sz = params.op == ".long" and 4 or 8