mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 13:09:22 +02:00
Add support for TBB/TBH instructions.
Precisize rules for selection of thumb instructions. Add short-cut notation support for most simple Thumb2 instructions ( add r1,#4 instead of add r1,r1,#4 ). git-svn-id: branches/laksen/armiw@29343 -
This commit is contained in:
parent
71cdedea82
commit
6fff181679
@ -2319,7 +2319,17 @@ implementation
|
|||||||
end
|
end
|
||||||
else if p^.code[0]=#$62 then
|
else if p^.code[0]=#$62 then
|
||||||
begin
|
begin
|
||||||
if (condition<>C_None) then
|
if ((condition<>C_None) and
|
||||||
|
(not inIT) and
|
||||||
|
(not lastinIT)) then
|
||||||
|
begin
|
||||||
|
Matches:=0;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else if p^.code[0]=#$63 then
|
||||||
|
begin
|
||||||
|
if inIT then
|
||||||
begin
|
begin
|
||||||
Matches:=0;
|
Matches:=0;
|
||||||
exit;
|
exit;
|
||||||
@ -4370,6 +4380,7 @@ implementation
|
|||||||
else if ops=2 then
|
else if ops=2 then
|
||||||
begin
|
begin
|
||||||
bytes:=bytes or (getsupreg(oper[0]^.reg) shl 8);
|
bytes:=bytes or (getsupreg(oper[0]^.reg) shl 8);
|
||||||
|
bytes:=bytes or (getsupreg(oper[0]^.reg) shl 16);
|
||||||
|
|
||||||
if oper[1]^.typ=top_const then
|
if oper[1]^.typ=top_const then
|
||||||
encodethumbimm(oper[1]^.val)
|
encodethumbimm(oper[1]^.val)
|
||||||
@ -4470,7 +4481,10 @@ implementation
|
|||||||
bytes:=bytes or (getsupreg(oper[1]^.reg) shl 0);
|
bytes:=bytes or (getsupreg(oper[1]^.reg) shl 0);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
offset:=1;
|
begin
|
||||||
|
bytes:=bytes or (getsupreg(oper[0]^.reg) shl 0);
|
||||||
|
offset:=1;
|
||||||
|
end;
|
||||||
|
|
||||||
if oper[offset]^.typ=top_const then
|
if oper[offset]^.typ=top_const then
|
||||||
begin
|
begin
|
||||||
@ -4887,6 +4901,28 @@ implementation
|
|||||||
bytes:=bytes or (((offset shr 22) xor (offset shr 23) xor 1) and $1) shl 13;
|
bytes:=bytes or (((offset shr 22) xor (offset shr 23) xor 1) and $1) shl 13;
|
||||||
bytes:=bytes or ((offset shr 23) and $1) shl 26;
|
bytes:=bytes or ((offset shr 23) and $1) shl 26;
|
||||||
end;
|
end;
|
||||||
|
#$8E: { Thumb-2: TBB/TBH }
|
||||||
|
begin
|
||||||
|
{ set instruction code }
|
||||||
|
bytes:=bytes or (ord(insentry^.code[1]) shl 24);
|
||||||
|
bytes:=bytes or (ord(insentry^.code[2]) shl 16);
|
||||||
|
bytes:=bytes or (ord(insentry^.code[3]) shl 8);
|
||||||
|
bytes:=bytes or ord(insentry^.code[4]);
|
||||||
|
{ set Rn and Rm }
|
||||||
|
bytes:=bytes or getsupreg(oper[0]^.ref^.base) shl 16;
|
||||||
|
|
||||||
|
if getregtype(oper[0]^.ref^.index)=R_INVALIDREGISTER then
|
||||||
|
message(asmw_e_invalid_effective_address)
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
bytes:=bytes or getsupreg(oper[0]^.ref^.index);
|
||||||
|
|
||||||
|
if (opcode=A_TBH) and
|
||||||
|
(oper[0]^.ref^.shiftmode<>SM_LSL) and
|
||||||
|
(oper[0]^.ref^.shiftimm<>1) then
|
||||||
|
message(asmw_e_invalid_effective_address);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
#$fe: // No written data
|
#$fe: // No written data
|
||||||
begin
|
begin
|
||||||
exit;
|
exit;
|
||||||
|
@ -88,6 +88,9 @@ void void none
|
|||||||
[ADCcc]
|
[ADCcc]
|
||||||
reglo,reglo \x60\x41\x40 THUMB,ARMv4T
|
reglo,reglo \x60\x41\x40 THUMB,ARMv4T
|
||||||
|
|
||||||
|
reg32,immshifter \x80\xF1\x40\x0\x0 THUMB32,ARMv6T2
|
||||||
|
reg32,reg32 \x80\xEB\x40\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
|
reg32,reg32,shifterop \x80\xEB\x40\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,immshifter \x80\xF1\x40\x0\x0 THUMB32,ARMv6T2
|
reg32,reg32,immshifter \x80\xF1\x40\x0\x0 THUMB32,ARMv6T2
|
||||||
reg32,reg32,reg32 \x80\xEB\x40\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32 \x80\xEB\x40\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,reg32,shifterop \x80\xEB\x40\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32,shifterop \x80\xEB\x40\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
@ -108,6 +111,9 @@ regsp,regsp,immshifter \x64\xB0\x00 THUMB,ARMv4T
|
|||||||
reg32,regsp,reg32 \x64\x44\x68 THUMB,ARMv4T
|
reg32,regsp,reg32 \x64\x44\x68 THUMB,ARMv4T
|
||||||
regsp,reg32 \x64\x44\x85 THUMB,ARMv4T
|
regsp,reg32 \x64\x44\x85 THUMB,ARMv4T
|
||||||
|
|
||||||
|
reg32,immshifter \x80\xF1\x0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
|
reg32,reg32 \x80\xEB\x0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
|
reg32,reg32,shifterop \x80\xEB\x0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,immshifter \x80\xF1\x0\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,immshifter \x80\xF1\x0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,reg32 \x80\xEB\x0\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32 \x80\xEB\x0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,reg32,shifterop \x80\xEB\x0\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32,shifterop \x80\xEB\x0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
@ -136,6 +142,9 @@ reg32,memam2 \x33\x2\x0F ARM32,ARMv4
|
|||||||
[ANDcc]
|
[ANDcc]
|
||||||
reglo,reglo \x60\x40\x00 THUMB,ARMv4T
|
reglo,reglo \x60\x40\x00 THUMB,ARMv4T
|
||||||
|
|
||||||
|
reg32,immshifter \x80\xF0\x0\x0\x0 THUMB32,ARMv6T2
|
||||||
|
reg32,reg32 \x80\xEA\x0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
|
reg32,reg32,shifterop \x80\xEA\x0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,immshifter \x80\xF0\x0\x0\x0 THUMB32,ARMv6T2
|
reg32,reg32,immshifter \x80\xF0\x0\x0\x0 THUMB32,ARMv6T2
|
||||||
reg32,reg32,reg32 \x80\xEA\x0\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32 \x80\xEA\x0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,reg32,shifterop \x80\xEA\x0\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32,shifterop \x80\xEA\x0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
@ -159,6 +168,9 @@ mem32 \x1\x0A ARM32,ARMv4
|
|||||||
[BICcc]
|
[BICcc]
|
||||||
reglo,reglo \x60\x43\x80 THUMB,ARMv4T
|
reglo,reglo \x60\x43\x80 THUMB,ARMv4T
|
||||||
|
|
||||||
|
reg32,immshifter \x80\xF0\x20\x0\x0 THUMB32,ARMv6T2
|
||||||
|
reg32,reg32 \x80\xEA\x20\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
|
reg32,reg32,shifterop \x80\xEA\x20\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,immshifter \x80\xF0\x20\x0\x0 THUMB32,ARMv6T2
|
reg32,reg32,immshifter \x80\xF0\x20\x0\x0 THUMB32,ARMv6T2
|
||||||
reg32,reg32,reg32 \x80\xEA\x20\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32 \x80\xEA\x20\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,reg32,shifterop \x80\xEA\x20\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32,shifterop \x80\xEA\x20\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
@ -246,6 +258,9 @@ reg32,reg32 \x32\x01\x6F\xF\x10 ARM32,ARMv4
|
|||||||
[EORcc]
|
[EORcc]
|
||||||
reglo,reglo \x60\x40\x40 THUMB,ARMv4T
|
reglo,reglo \x60\x40\x40 THUMB,ARMv4T
|
||||||
|
|
||||||
|
reg32,immshifter \x80\xF0\x80\x0\x0 THUMB32,ARMv6T2
|
||||||
|
reg32,reg32 \x80\xEA\x80\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
|
reg32,reg32,shifterop \x80\xEA\x80\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,immshifter \x80\xF0\x80\x0\x0 THUMB32,ARMv6T2
|
reg32,reg32,immshifter \x80\xF0\x80\x0\x0 THUMB32,ARMv6T2
|
||||||
reg32,reg32,reg32 \x80\xEA\x80\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32 \x80\xEA\x80\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,reg32,shifterop \x80\xEA\x80\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32,shifterop \x80\xEA\x80\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
@ -365,6 +380,7 @@ regs,immshifter \x13\x03\x28\xF0 ARM32,ARMv4
|
|||||||
|
|
||||||
[MULcc]
|
[MULcc]
|
||||||
reglo,reglo,reglo \x64\x43\x40 THUMB,ARMv4T
|
reglo,reglo,reglo \x64\x43\x40 THUMB,ARMv4T
|
||||||
|
reg32,reg32 \x80\xFB\x00\xF0\x00 THUMB32,ARMv6T2
|
||||||
reg32,reg32,reg32 \x80\xFB\x00\xF0\x00 THUMB32,ARMv6T2
|
reg32,reg32,reg32 \x80\xFB\x00\xF0\x00 THUMB32,ARMv6T2
|
||||||
reg32,reg32,reg32 \x14\x00\x00\x90 ARM32,ARMv4
|
reg32,reg32,reg32 \x14\x00\x00\x90 ARM32,ARMv4
|
||||||
|
|
||||||
@ -401,13 +417,19 @@ void \x2F\x03\x20\xF0\x0 ARM32,ARMv6K
|
|||||||
void \x2F\xE1\xA0\x0\x0 ARM32,ARMv4
|
void \x2F\xE1\xA0\x0\x0 ARM32,ARMv4
|
||||||
|
|
||||||
[ORNcc]
|
[ORNcc]
|
||||||
|
reg32,immshifter \x80\xF0\x60\x0\x0 THUMB32,ARMv6T2
|
||||||
|
reg32,reg32 \x80\xEA\x60\x0\x0 THUMB32,ARMv6T2
|
||||||
|
reg32,reg32,shifterop \x80\xEA\x60\x0\x0 THUMB32,ARMv6T2
|
||||||
reg32,reg32,immshifter \x80\xF0\x60\x0\x0 THUMB32,ARMv6T2
|
reg32,reg32,immshifter \x80\xF0\x60\x0\x0 THUMB32,ARMv6T2
|
||||||
reg32,reg32,reg32 \x80\xEA\x60\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32 \x80\xEA\x60\x0\x0 THUMB32,ARMv6T2
|
||||||
reg32,reg32,reg32,shifterop \x80\xEA\x60\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32,shifterop \x80\xEA\x60\x0\x0 THUMB32,ARMv6T2
|
||||||
|
|
||||||
[ORRcc]
|
[ORRcc]
|
||||||
reglo,reglo \x60\x43\x00 THUMB,ARMv4T
|
reglo,reglo \x60\x43\x00 THUMB,ARMv4T
|
||||||
|
|
||||||
|
reg32,immshifter \x80\xF0\x40\x0\x0 THUMB32,ARMv6T2
|
||||||
|
reg32,reg32 \x80\xEA\x40\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
|
reg32,reg32,shifterop \x80\xEA\x40\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,immshifter \x80\xF0\x40\x0\x0 THUMB32,ARMv6T2
|
reg32,reg32,immshifter \x80\xF0\x40\x0\x0 THUMB32,ARMv6T2
|
||||||
reg32,reg32,reg32 \x80\xEA\x40\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32 \x80\xEA\x40\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,reg32,shifterop \x80\xEA\x40\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32,shifterop \x80\xEA\x40\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
@ -420,9 +442,12 @@ reg32,reg32,immshifter \7\x3\x80 ARM32,ARMv4
|
|||||||
[RSBcc]
|
[RSBcc]
|
||||||
reglo,reglo,immzero \x60\x42\x40 THUMB,ARMv4T
|
reglo,reglo,immzero \x60\x42\x40 THUMB,ARMv4T
|
||||||
|
|
||||||
|
reg32,immshifter \x80\xF1\xC0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
|
reg32,reg32 \x80\xEB\xC0\x0\x0 THUMB32,ARMv6T2
|
||||||
|
reg32,reg32,shifterop \x80\xEB\xC0\x0\x0 THUMB32,ARMv6T2
|
||||||
reg32,reg32,immshifter \x80\xF1\xC0\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,immshifter \x80\xF1\xC0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,reg32 \x80\xEB\xC0\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32 \x80\xEB\xC0\x0\x0 THUMB32,ARMv6T2
|
||||||
reg32,reg32,reg32,shifterop \x80\xEB\xC0\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32,shifterop \x80\xEB\xC0\x0\x0 THUMB32,ARMv6T2
|
||||||
|
|
||||||
reg32,reg32,reg32 \6\x0\x60 ARM32,ARMv4
|
reg32,reg32,reg32 \6\x0\x60 ARM32,ARMv4
|
||||||
reg32,reg32,reg32,shifterop \6\x0\x60 ARM32,ARMv4
|
reg32,reg32,reg32,shifterop \6\x0\x60 ARM32,ARMv4
|
||||||
@ -437,7 +462,10 @@ reg32,reg32,immshifter \7\x2\xE0 ARM32,ARMv4
|
|||||||
[SBCcc]
|
[SBCcc]
|
||||||
reglo,reglo \x60\x41\x80 THUMB,ARMv4T
|
reglo,reglo \x60\x41\x80 THUMB,ARMv4T
|
||||||
|
|
||||||
reg32,reg32,immshifter \x80\xF1\x60\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,immshifter \x80\xF1\x60\x0\x0 THUMB32,ARMv6T2
|
||||||
|
reg32,reg32 \x80\xEB\x60\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
|
reg32,reg32,shifterop \x80\xEB\x60\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
|
reg32,reg32,immshifter \x80\xF1\x60\x0\x0 THUMB32,ARMv6T2
|
||||||
reg32,reg32,reg32 \x80\xEB\x60\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32 \x80\xEB\x60\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,reg32,shifterop \x80\xEB\x60\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32,shifterop \x80\xEB\x60\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
|
|
||||||
@ -505,6 +533,9 @@ reglo,reglo,reglo \x60\x1A\x0 THUMB,ARMv4T
|
|||||||
reglo,reglo,immshifter \x60\x1E\x0 THUMB,ARMv4T
|
reglo,reglo,immshifter \x60\x1E\x0 THUMB,ARMv4T
|
||||||
reglo,imm8 \x60\x38\x0 THUMB,ARMv4T
|
reglo,imm8 \x60\x38\x0 THUMB,ARMv4T
|
||||||
|
|
||||||
|
reg32,immshifter \x80\xF1\xA0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
|
reg32,reg32 \x80\xEB\xA0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
|
reg32,reg32,shifterop \x80\xEB\xA0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,immshifter \x80\xF1\xA0\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,immshifter \x80\xF1\xA0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,reg32 \x80\xEB\xA0\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32 \x80\xEB\xA0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,reg32,shifterop \x80\xEB\xA0\x0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32,shifterop \x80\xEB\xA0\x0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
@ -822,7 +853,9 @@ void \x2F\x3\x20\xF0\x4 ARM32,ARMv6K
|
|||||||
reglo,reglo,immshifter \x60\x1\x0 THUMB,ARMv4T
|
reglo,reglo,immshifter \x60\x1\x0 THUMB,ARMv4T
|
||||||
reglo,reglo \x60\x41\x0 THUMB,ARMv4T
|
reglo,reglo \x60\x41\x0 THUMB,ARMv4T
|
||||||
|
|
||||||
|
reg32,immshifter \x82\xEA\x4F\x0\x20 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,immshifter \x82\xEA\x4F\x0\x20 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,immshifter \x82\xEA\x4F\x0\x20 THUMB32,WIDE,ARMv6T2
|
||||||
|
reg32,reg32 \x80\xFA\x40\xF0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,reg32 \x80\xFA\x40\xF0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32 \x80\xFA\x40\xF0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
|
|
||||||
reg32,reg32,reg32 \x30\x1\xA0\x0\x50 ARM32,ARMv4
|
reg32,reg32,reg32 \x30\x1\xA0\x0\x50 ARM32,ARMv4
|
||||||
@ -832,7 +865,9 @@ reg32,reg32,immshifter \x30\x1\xA0\x0\x40 ARM32,ARMv4
|
|||||||
reglo,reglo,immshifter \x60\x8\x0 THUMB,ARMv4T
|
reglo,reglo,immshifter \x60\x8\x0 THUMB,ARMv4T
|
||||||
reglo,reglo \x60\x40\xC0 THUMB,ARMv4T
|
reglo,reglo \x60\x40\xC0 THUMB,ARMv4T
|
||||||
|
|
||||||
|
reg32,immshifter \x82\xEA\x4F\x0\x10 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,immshifter \x82\xEA\x4F\x0\x10 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,immshifter \x82\xEA\x4F\x0\x10 THUMB32,WIDE,ARMv6T2
|
||||||
|
reg32,reg32 \x80\xFA\x20\xF0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,reg32 \x80\xFA\x20\xF0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32 \x80\xFA\x20\xF0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
|
|
||||||
reg32,reg32,reg32 \x30\x1\xA0\x0\x30 ARM32,ARMv4
|
reg32,reg32,reg32 \x30\x1\xA0\x0\x30 ARM32,ARMv4
|
||||||
@ -842,7 +877,9 @@ reg32,reg32,immshifter \x30\x1\xA0\x0\x20 ARM32,ARMv4
|
|||||||
reglo,reglo,immshifter \x60\x0\x0 THUMB,ARMv4T
|
reglo,reglo,immshifter \x60\x0\x0 THUMB,ARMv4T
|
||||||
reglo,reglo \x60\x40\x80 THUMB,ARMv4T
|
reglo,reglo \x60\x40\x80 THUMB,ARMv4T
|
||||||
|
|
||||||
|
reg32,immshifter \x82\xEA\x4F\x0\x00 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,immshifter \x82\xEA\x4F\x0\x00 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,immshifter \x82\xEA\x4F\x0\x00 THUMB32,WIDE,ARMv6T2
|
||||||
|
reg32,reg32 \x80\xFA\x60\xF0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,reg32 \x80\xFA\x60\xF0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32 \x80\xFA\x60\xF0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
|
|
||||||
reg32,reg32,reg32 \x30\x1\xA0\x0\x10 ARM32,ARMv4
|
reg32,reg32,reg32 \x30\x1\xA0\x0\x10 ARM32,ARMv4
|
||||||
@ -851,7 +888,9 @@ reg32,reg32,immshifter \x30\x1\xA0\x0\x00 ARM32,ARMv4
|
|||||||
[RORcc]
|
[RORcc]
|
||||||
reglo,reglo \x60\x41\xC0 THUMB,ARMv4T
|
reglo,reglo \x60\x41\xC0 THUMB,ARMv4T
|
||||||
|
|
||||||
|
reg32,immshifter \x82\xEA\x4F\x0\x30 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,immshifter \x82\xEA\x4F\x0\x30 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,immshifter \x82\xEA\x4F\x0\x30 THUMB32,WIDE,ARMv6T2
|
||||||
|
reg32,reg32 \x80\xFA\x60\xF0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
reg32,reg32,reg32 \x80\xFA\x60\xF0\x0 THUMB32,WIDE,ARMv6T2
|
reg32,reg32,reg32 \x80\xFA\x60\xF0\x0 THUMB32,WIDE,ARMv6T2
|
||||||
|
|
||||||
reg32,reg32,reg32 \x30\x1\xA0\x0\x70 ARM32,ARMv4
|
reg32,reg32,reg32 \x30\x1\xA0\x0\x70 ARM32,ARMv4
|
||||||
@ -1354,8 +1393,11 @@ condition \xFE ARM32,ARMv4
|
|||||||
condition \x6A\xBF\x01\x0E THUMB,ARMv6T2
|
condition \x6A\xBF\x01\x0E THUMB,ARMv6T2
|
||||||
condition \xFE ARM32,ARMv4
|
condition \xFE ARM32,ARMv4
|
||||||
|
|
||||||
[TBB]
|
[TBBcc]
|
||||||
[TBH]
|
memam2 \x8E\xE8\xD0\xF0\x00 THUMB32,ARMv6T2
|
||||||
|
|
||||||
|
[TBHcc]
|
||||||
|
memam2 \x8E\xE8\xD0\xF0\x10 THUMB32,ARMv6T2
|
||||||
|
|
||||||
[MOVW]
|
[MOVW]
|
||||||
reg32,imm32 \x2C\x3\x0 ARM32,ARMv6T2
|
reg32,imm32 \x2C\x3\x0 ARM32,ARMv6T2
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
{ don't edit, this file is generated from armins.dat }
|
{ don't edit, this file is generated from armins.dat }
|
||||||
653;
|
694;
|
||||||
|
@ -14,6 +14,27 @@
|
|||||||
code : #96#65#64;
|
code : #96#65#64;
|
||||||
flags : if_thumb or if_armv4t
|
flags : if_thumb or if_armv4t
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_ADC;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_immediateshifter,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#241#64#0#0;
|
||||||
|
flags : if_thumb32 or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_ADC;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#235#64#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_ADC;
|
||||||
|
ops : 3;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_shifterop,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#235#64#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_ADC;
|
opcode : A_ADC;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -112,6 +133,27 @@
|
|||||||
code : #100#68#133;
|
code : #100#68#133;
|
||||||
flags : if_thumb or if_armv4t
|
flags : if_thumb or if_armv4t
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_ADD;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_immediateshifter,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#241#0#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_ADD;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#235#0#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_ADD;
|
||||||
|
ops : 3;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_shifterop,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#235#0#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_ADD;
|
opcode : A_ADD;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -210,6 +252,27 @@
|
|||||||
code : #96#64#0;
|
code : #96#64#0;
|
||||||
flags : if_thumb or if_armv4t
|
flags : if_thumb or if_armv4t
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_AND;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_immediateshifter,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#240#0#0#0;
|
||||||
|
flags : if_thumb32 or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_AND;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#234#0#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_AND;
|
||||||
|
ops : 3;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_shifterop,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#234#0#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_AND;
|
opcode : A_AND;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -315,6 +378,27 @@
|
|||||||
code : #96#67#128;
|
code : #96#67#128;
|
||||||
flags : if_thumb or if_armv4t
|
flags : if_thumb or if_armv4t
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_BIC;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_immediateshifter,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#240#32#0#0;
|
||||||
|
flags : if_thumb32 or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_BIC;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#234#32#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_BIC;
|
||||||
|
ops : 3;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_shifterop,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#234#32#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_BIC;
|
opcode : A_BIC;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -623,6 +707,27 @@
|
|||||||
code : #96#64#64;
|
code : #96#64#64;
|
||||||
flags : if_thumb or if_armv4t
|
flags : if_thumb or if_armv4t
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_EOR;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_immediateshifter,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#240#128#0#0;
|
||||||
|
flags : if_thumb32 or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_EOR;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#234#128#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_EOR;
|
||||||
|
ops : 3;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_shifterop,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#234#128#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_EOR;
|
opcode : A_EOR;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -1099,6 +1204,13 @@
|
|||||||
code : #100#67#64;
|
code : #100#67#64;
|
||||||
flags : if_thumb or if_armv4t
|
flags : if_thumb or if_armv4t
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_MUL;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#251#0#240#0;
|
||||||
|
flags : if_thumb32 or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_MUL;
|
opcode : A_MUL;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -1239,6 +1351,27 @@
|
|||||||
code : #47#225#160#0#0;
|
code : #47#225#160#0#0;
|
||||||
flags : if_arm32 or if_armv4
|
flags : if_arm32 or if_armv4
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_ORN;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_immediateshifter,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#240#96#0#0;
|
||||||
|
flags : if_thumb32 or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_ORN;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#234#96#0#0;
|
||||||
|
flags : if_thumb32 or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_ORN;
|
||||||
|
ops : 3;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_shifterop,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#234#96#0#0;
|
||||||
|
flags : if_thumb32 or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_ORN;
|
opcode : A_ORN;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -1251,14 +1384,14 @@
|
|||||||
ops : 3;
|
ops : 3;
|
||||||
optypes : (ot_reg32,ot_reg32,ot_reg32,ot_none,ot_none,ot_none);
|
optypes : (ot_reg32,ot_reg32,ot_reg32,ot_none,ot_none,ot_none);
|
||||||
code : #128#234#96#0#0;
|
code : #128#234#96#0#0;
|
||||||
flags : if_thumb32 or if_wide or if_armv6t2
|
flags : if_thumb32 or if_armv6t2
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
opcode : A_ORN;
|
opcode : A_ORN;
|
||||||
ops : 4;
|
ops : 4;
|
||||||
optypes : (ot_reg32,ot_reg32,ot_reg32,ot_shifterop,ot_none,ot_none);
|
optypes : (ot_reg32,ot_reg32,ot_reg32,ot_shifterop,ot_none,ot_none);
|
||||||
code : #128#234#96#0#0;
|
code : #128#234#96#0#0;
|
||||||
flags : if_thumb32 or if_wide or if_armv6t2
|
flags : if_thumb32 or if_armv6t2
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
opcode : A_ORR;
|
opcode : A_ORR;
|
||||||
@ -1267,6 +1400,27 @@
|
|||||||
code : #96#67#0;
|
code : #96#67#0;
|
||||||
flags : if_thumb or if_armv4t
|
flags : if_thumb or if_armv4t
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_ORR;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_immediateshifter,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#240#64#0#0;
|
||||||
|
flags : if_thumb32 or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_ORR;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#234#64#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_ORR;
|
||||||
|
ops : 3;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_shifterop,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#234#64#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_ORR;
|
opcode : A_ORR;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -1323,6 +1477,27 @@
|
|||||||
code : #96#66#64;
|
code : #96#66#64;
|
||||||
flags : if_thumb or if_armv4t
|
flags : if_thumb or if_armv4t
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_RSB;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_immediateshifter,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#241#192#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_RSB;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#235#192#0#0;
|
||||||
|
flags : if_thumb32 or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_RSB;
|
||||||
|
ops : 3;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_shifterop,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#235#192#0#0;
|
||||||
|
flags : if_thumb32 or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_RSB;
|
opcode : A_RSB;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -1335,14 +1510,14 @@
|
|||||||
ops : 3;
|
ops : 3;
|
||||||
optypes : (ot_reg32,ot_reg32,ot_reg32,ot_none,ot_none,ot_none);
|
optypes : (ot_reg32,ot_reg32,ot_reg32,ot_none,ot_none,ot_none);
|
||||||
code : #128#235#192#0#0;
|
code : #128#235#192#0#0;
|
||||||
flags : if_thumb32 or if_wide or if_armv6t2
|
flags : if_thumb32 or if_armv6t2
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
opcode : A_RSB;
|
opcode : A_RSB;
|
||||||
ops : 4;
|
ops : 4;
|
||||||
optypes : (ot_reg32,ot_reg32,ot_reg32,ot_shifterop,ot_none,ot_none);
|
optypes : (ot_reg32,ot_reg32,ot_reg32,ot_shifterop,ot_none,ot_none);
|
||||||
code : #128#235#192#0#0;
|
code : #128#235#192#0#0;
|
||||||
flags : if_thumb32 or if_wide or if_armv6t2
|
flags : if_thumb32 or if_armv6t2
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
opcode : A_RSB;
|
opcode : A_RSB;
|
||||||
@ -1400,12 +1575,33 @@
|
|||||||
code : #96#65#128;
|
code : #96#65#128;
|
||||||
flags : if_thumb or if_armv4t
|
flags : if_thumb or if_armv4t
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_SBC;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_immediateshifter,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#241#96#0#0;
|
||||||
|
flags : if_thumb32 or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_SBC;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#235#96#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_SBC;
|
||||||
|
ops : 3;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_shifterop,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#235#96#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_SBC;
|
opcode : A_SBC;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
optypes : (ot_reg32,ot_reg32,ot_immediateshifter,ot_none,ot_none,ot_none);
|
optypes : (ot_reg32,ot_reg32,ot_immediateshifter,ot_none,ot_none,ot_none);
|
||||||
code : #128#241#96#0#0;
|
code : #128#241#96#0#0;
|
||||||
flags : if_thumb32 or if_wide or if_armv6t2
|
flags : if_thumb32 or if_armv6t2
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
opcode : A_SBC;
|
opcode : A_SBC;
|
||||||
@ -1687,6 +1883,27 @@
|
|||||||
code : #96#56#0;
|
code : #96#56#0;
|
||||||
flags : if_thumb or if_armv4t
|
flags : if_thumb or if_armv4t
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_SUB;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_immediateshifter,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#241#160#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_SUB;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#235#160#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_SUB;
|
||||||
|
ops : 3;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_shifterop,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#235#160#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_SUB;
|
opcode : A_SUB;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -2758,6 +2975,13 @@
|
|||||||
code : #96#65#0;
|
code : #96#65#0;
|
||||||
flags : if_thumb or if_armv4t
|
flags : if_thumb or if_armv4t
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_ASR;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_immediateshifter,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #130#234#79#0#32;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_ASR;
|
opcode : A_ASR;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -2765,6 +2989,13 @@
|
|||||||
code : #130#234#79#0#32;
|
code : #130#234#79#0#32;
|
||||||
flags : if_thumb32 or if_wide or if_armv6t2
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_ASR;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#250#64#240#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_ASR;
|
opcode : A_ASR;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -2800,6 +3031,13 @@
|
|||||||
code : #96#64#192;
|
code : #96#64#192;
|
||||||
flags : if_thumb or if_armv4t
|
flags : if_thumb or if_armv4t
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_LSR;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_immediateshifter,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #130#234#79#0#16;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_LSR;
|
opcode : A_LSR;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -2807,6 +3045,13 @@
|
|||||||
code : #130#234#79#0#16;
|
code : #130#234#79#0#16;
|
||||||
flags : if_thumb32 or if_wide or if_armv6t2
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_LSR;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#250#32#240#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_LSR;
|
opcode : A_LSR;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -2842,6 +3087,13 @@
|
|||||||
code : #96#64#128;
|
code : #96#64#128;
|
||||||
flags : if_thumb or if_armv4t
|
flags : if_thumb or if_armv4t
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_LSL;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_immediateshifter,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #130#234#79#0#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_LSL;
|
opcode : A_LSL;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -2849,6 +3101,13 @@
|
|||||||
code : #130#234#79#0#0;
|
code : #130#234#79#0#0;
|
||||||
flags : if_thumb32 or if_wide or if_armv6t2
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_LSL;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#250#96#240#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_LSL;
|
opcode : A_LSL;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -2877,6 +3136,13 @@
|
|||||||
code : #96#65#192;
|
code : #96#65#192;
|
||||||
flags : if_thumb or if_armv4t
|
flags : if_thumb or if_armv4t
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_ROR;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_immediateshifter,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #130#234#79#0#48;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_ROR;
|
opcode : A_ROR;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -2884,6 +3150,13 @@
|
|||||||
code : #130#234#79#0#48;
|
code : #130#234#79#0#48;
|
||||||
flags : if_thumb32 or if_wide or if_armv6t2
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_ROR;
|
||||||
|
ops : 2;
|
||||||
|
optypes : (ot_reg32,ot_reg32,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #128#250#96#240#0;
|
||||||
|
flags : if_thumb32 or if_wide or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_ROR;
|
opcode : A_ROR;
|
||||||
ops : 3;
|
ops : 3;
|
||||||
@ -4263,6 +4536,20 @@
|
|||||||
code : #254;
|
code : #254;
|
||||||
flags : if_arm32 or if_armv4
|
flags : if_arm32 or if_armv4
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
opcode : A_TBB;
|
||||||
|
ops : 1;
|
||||||
|
optypes : (ot_memoryam2,ot_none,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #142#232#208#240#0;
|
||||||
|
flags : if_thumb32 or if_armv6t2
|
||||||
|
),
|
||||||
|
(
|
||||||
|
opcode : A_TBH;
|
||||||
|
ops : 1;
|
||||||
|
optypes : (ot_memoryam2,ot_none,ot_none,ot_none,ot_none,ot_none);
|
||||||
|
code : #142#232#208#240#16;
|
||||||
|
flags : if_thumb32 or if_armv6t2
|
||||||
|
),
|
||||||
(
|
(
|
||||||
opcode : A_MOVW;
|
opcode : A_MOVW;
|
||||||
ops : 2;
|
ops : 2;
|
||||||
|
@ -1388,6 +1388,7 @@ Implementation
|
|||||||
objsymend : TObjSymbol;
|
objsymend : TObjSymbol;
|
||||||
zerobuf : array[0..63] of byte;
|
zerobuf : array[0..63] of byte;
|
||||||
relative_reloc: boolean;
|
relative_reloc: boolean;
|
||||||
|
tmp : word;
|
||||||
begin
|
begin
|
||||||
fillchar(zerobuf,sizeof(zerobuf),0);
|
fillchar(zerobuf,sizeof(zerobuf),0);
|
||||||
fillchar(objsym,sizeof(objsym),0);
|
fillchar(objsym,sizeof(objsym),0);
|
||||||
@ -1511,6 +1512,11 @@ Implementation
|
|||||||
aitconst_darwin_dwarf_delta32,
|
aitconst_darwin_dwarf_delta32,
|
||||||
aitconst_darwin_dwarf_delta64:
|
aitconst_darwin_dwarf_delta64:
|
||||||
ObjData.writebytes(Tai_const(hp).value,tai_const(hp).size);
|
ObjData.writebytes(Tai_const(hp).value,tai_const(hp).size);
|
||||||
|
aitconst_half16bit:
|
||||||
|
begin
|
||||||
|
tmp:=Tai_const(hp).value div 2;
|
||||||
|
ObjData.writebytes(tmp,2);
|
||||||
|
end
|
||||||
else
|
else
|
||||||
internalerror(200603254);
|
internalerror(200603254);
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user