mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 04:39:28 +02:00
Fix SWI as a pseudo instruction.
Add VFPv2/3 instruction entries for Thumb2. git-svn-id: branches/laksen/armiw@29356 -
This commit is contained in:
parent
cbd75428c0
commit
49346b3041
@ -1550,6 +1550,10 @@ implementation
|
||||
taicpu(curtai).ops:=2;
|
||||
end;
|
||||
end;
|
||||
A_SWI:
|
||||
begin
|
||||
taicpu(curtai).opcode:=A_SVC;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -2317,7 +2321,7 @@ implementation
|
||||
// stm,ldm
|
||||
#$26,#$69,#$8C,
|
||||
// vldm/vstm
|
||||
#$44
|
||||
#$44,#$94
|
||||
]) then
|
||||
begin
|
||||
Matches:=0;
|
||||
@ -3583,7 +3587,7 @@ implementation
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
#$40: // VMOV
|
||||
#$40,#$90: // VMOV
|
||||
begin
|
||||
{ set instruction code }
|
||||
bytes:=bytes or (ord(insentry^.code[1]) shl 24);
|
||||
@ -3706,7 +3710,7 @@ implementation
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
#$41: // VMRS/VMSR
|
||||
#$41,#$91: // VMRS/VMSR
|
||||
begin
|
||||
{ set instruction code }
|
||||
bytes:=bytes or (ord(insentry^.code[1]) shl 24);
|
||||
@ -3750,7 +3754,7 @@ implementation
|
||||
bytes:=bytes or (getsupreg(oper[1]^.reg) shl 12);
|
||||
end;
|
||||
end;
|
||||
#$42: // VMUL
|
||||
#$42,#$92: // VMUL
|
||||
begin
|
||||
{ set instruction code }
|
||||
bytes:=bytes or (ord(insentry^.code[1]) shl 24);
|
||||
@ -3800,7 +3804,7 @@ implementation
|
||||
bytes:=bytes or (N shl 7);
|
||||
bytes:=bytes or (M shl 5);
|
||||
end;
|
||||
#$43: // VCVT
|
||||
#$43,#$93: // VCVT
|
||||
begin
|
||||
{ set instruction code }
|
||||
bytes:=bytes or (ord(insentry^.code[1]) shl 24);
|
||||
@ -3962,7 +3966,7 @@ implementation
|
||||
bytes:=bytes or ((rn and $1E) shr 1);
|
||||
end;
|
||||
end;
|
||||
#$44: // VLDM/VSTM/VPUSH/VPOP
|
||||
#$44,#$94: // VLDM/VSTM/VPUSH/VPOP
|
||||
begin
|
||||
{ set instruction code }
|
||||
bytes:=bytes or (ord(insentry^.code[1]) shl 24);
|
||||
@ -4079,7 +4083,7 @@ implementation
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
#$45: // VLDR/VSTR
|
||||
#$45,#$95: // VLDR/VSTR
|
||||
begin
|
||||
{ set instruction code }
|
||||
bytes:=bytes or (ord(insentry^.code[1]) shl 24);
|
||||
@ -5040,7 +5044,7 @@ implementation
|
||||
end;
|
||||
|
||||
{ Todo: Decide whether the code above should take care of writing data in an order that makes senes }
|
||||
if (insentry^.code[0] in [#$80..#$90]) and (bytelen=4) then
|
||||
if (insentry^.code[0] in [#$80..#$95]) and (bytelen=4) then
|
||||
bytes:=((bytes shr 16) and $FFFF) or ((bytes and $FFFF) shl 16);
|
||||
|
||||
{ we're finished, write code }
|
||||
|
@ -401,14 +401,21 @@ reg32,reg32,shifterop \xA\x1\xE0 ARM32,ARMv4
|
||||
reg32,immshifter \xB\x1\xE0 ARM32,ARMv4
|
||||
|
||||
[VMOVcc]
|
||||
vreg,vreg \x90\xEE\xB0\xA\x40 THUMB32,VFPv2
|
||||
vreg,vreg \x40\xE\xB0\xA\x40 ARM32,VFPv2
|
||||
|
||||
reg32,vreg \x90\xEE\x10\xA\x10 THUMB32,VFPv2
|
||||
vreg,reg32 \x90\xEE\x00\xA\x10 THUMB32,VFPv2
|
||||
reg32,vreg \x40\xE\x10\xA\x10 ARM32,VFPv2
|
||||
vreg,reg32 \x40\xE\x00\xA\x10 ARM32,VFPv2
|
||||
|
||||
reg32,reg32,vreg,vreg \x90\xEC\x50\xA\x10 THUMB32,VFPv2
|
||||
vreg,vreg,reg32,reg32 \x90\xEC\x40\xA\x10 THUMB32,VFPv2
|
||||
reg32,reg32,vreg,vreg \x40\xC\x50\xA\x10 ARM32,VFPv2
|
||||
vreg,vreg,reg32,reg32 \x40\xC\x40\xA\x10 ARM32,VFPv2
|
||||
|
||||
reg32,reg32,vreg \x90\xEC\x50\xB\x10 THUMB32,VFPv2
|
||||
vreg,reg32,reg32 \x90\xEC\x40\xB\x10 THUMB32,VFPv2
|
||||
reg32,reg32,vreg \x40\xC\x50\xB\x10 ARM32,VFPv2
|
||||
vreg,reg32,reg32 \x40\xC\x40\xB\x10 ARM32,VFPv2
|
||||
|
||||
@ -552,8 +559,7 @@ reg32,reg32,reg32 \x4\x0\x40 ARM32,ARMv4
|
||||
reg32,reg32,reg32,shifterop \x6\x0\x40 ARM32,ARMv4
|
||||
|
||||
[SWIcc]
|
||||
imm \x2\x0F ARM32,ARMv4
|
||||
immshifter \x2\x0F ARM32,ARMv4
|
||||
; Old alias for SVC
|
||||
|
||||
[SWPcc]
|
||||
reg32,reg32,memam2 \x27\x10\x09 ARM32,ARMv4
|
||||
@ -655,23 +661,31 @@ reg32,reg32,reg32,reg32 \x80\xFB\x30\x0\x10 THUMB32,ARMv6T2
|
||||
reg32,reg32,reg32,reg32 \x15\x1\x20\xC ARM32,ARMv5TE
|
||||
|
||||
[VLDMcc]
|
||||
memam4,reglist \x94\xEC\x10\xA THUMB32,VFPv2
|
||||
reg32,reglist \x94\xEC\x10\xA THUMB32,VFPv2
|
||||
memam4,reglist \x44\xC\x10\xA ARM32,VFPv2
|
||||
reg32,reglist \x44\xC\x10\xA ARM32,VFPv2
|
||||
|
||||
[VSTMcc]
|
||||
memam4,reglist \x94\xEC\x00\xA THUMB32,VFPv2
|
||||
reg32,reglist \x94\xEC\x00\xA THUMB32,VFPv2
|
||||
memam4,reglist \x44\xC\x00\xA ARM32,VFPv2
|
||||
reg32,reglist \x44\xC\x00\xA ARM32,VFPv2
|
||||
|
||||
[VPOP]
|
||||
reglist \x94\xEC\xBD\xA THUMB32,VFPv2
|
||||
reglist \x44\xC\xBD\xA ARM32,VFPv2
|
||||
|
||||
[VPUSH]
|
||||
reglist \x94\xED\x2D\xA THUMB32,VFPv2
|
||||
reglist \x44\xD\x2D\xA ARM32,VFPv2
|
||||
|
||||
[VLDRcc]
|
||||
vreg,memam2 \x95\xED\x10\xA THUMB32,VFPv2
|
||||
vreg,memam2 \x45\xD\x10\xA ARM32,VFPv2
|
||||
|
||||
[VSTRcc]
|
||||
vreg,memam2 \x95\xED\x0\xA THUMB32,VFPv2
|
||||
vreg,memam2 \x45\xD\x0\xA ARM32,VFPv2
|
||||
|
||||
[SMULBBcc]
|
||||
@ -1431,52 +1445,71 @@ reglo,memam2 \x68\xB9 THUMB,ARMv6T2
|
||||
|
||||
; VFP
|
||||
[VABScc]
|
||||
vreg,vreg \x92\xEE\xB0\xA\xC0 THUMB32,VFPv2
|
||||
vreg,vreg \x42\xE\xB0\xA\xC0 ARM32,VFPv2
|
||||
|
||||
[VADDcc]
|
||||
vreg,vreg,vreg \x92\xEE\x30\xA\x0 THUMB32,VFPv2
|
||||
vreg,vreg,vreg \x42\xE\x30\xA\x0 ARM32,VFPv2
|
||||
|
||||
[VCMPcc]
|
||||
vreg,vreg \x92\xEE\xB4\xA\x40 THUMB32,VFPv2
|
||||
vreg,immshifter \x92\xEE\xB5\xA\x40 THUMB32,VFPv2
|
||||
vreg,vreg \x42\xE\xB4\xA\x40 ARM32,VFPv2
|
||||
vreg,immshifter \x42\xE\xB5\xA\x40 ARM32,VFPv2
|
||||
|
||||
[VCMPEcc]
|
||||
vreg,vreg \x92\xEE\xB4\xA\xC0 THUMB32,VFPv2
|
||||
vreg,immshifter \x92\xEE\xB5\xA\xC0 THUMB32,VFPv2
|
||||
vreg,vreg \x42\xE\xB4\xA\xC0 ARM32,VFPv2
|
||||
vreg,immshifter \x42\xE\xB5\xA\xC0 ARM32,VFPv2
|
||||
|
||||
[VCVTcc]
|
||||
vreg,vreg \x93\xEE\xB8\xA\xC0 THUMB32,VFPv2
|
||||
vreg,vreg,immshifter \x93\xEE\xBA\xA\x40 THUMB32,VFPv3
|
||||
vreg,vreg \x43\xE\xB8\xA\xC0 ARM32,VFPv2
|
||||
vreg,vreg,immshifter \x43\xE\xBA\xA\x40 ARM32,VFPv3
|
||||
|
||||
[VCVTRcc]
|
||||
vreg,vreg \x93\xEE\xB8\xA\x40 THUMB32,VFPv2
|
||||
vreg,vreg \x43\xE\xB8\xA\x40 ARM32,VFPv2
|
||||
|
||||
[VDIVcc]
|
||||
vreg,vreg,vreg \x92\xEE\x80\xA\x0 THUMB32,VFPv2
|
||||
vreg,vreg,vreg \x42\xE\x80\xA\x0 ARM32,VFPv2
|
||||
|
||||
[VMRScc]
|
||||
reg32,regf \x91\xEE\xF0\xA\x10 THUMB32,VFPv2
|
||||
regf,regf \x91\xEE\xF0\xA\x10 THUMB32,VFPv2
|
||||
reg32,regf \x41\xE\xF0\xA\x10 ARM32,VFPv2
|
||||
regf,regf \x41\xE\xF0\xA\x10 ARM32,VFPv2
|
||||
|
||||
[VMSRcc]
|
||||
regf,reg32 \x91\xEE\xE0\xA\x10 THUMB32,VFPv2
|
||||
regf,reg32 \x41\xE\xE0\xA\x10 ARM32,VFPv2
|
||||
|
||||
[VMLAcc]
|
||||
vreg,vreg,vreg \x92\xEE\x0\xA\x00 THUMB32,VFPv2
|
||||
vreg,vreg,vreg \x42\xE\x0\xA\x00 ARM32,VFPv2
|
||||
|
||||
[VMLScc]
|
||||
vreg,vreg,vreg \x92\xEE\x0\xA\x40 THUMB32,VFPv2
|
||||
vreg,vreg,vreg \x42\xE\x0\xA\x40 ARM32,VFPv2
|
||||
|
||||
[VMULcc]
|
||||
vreg,vreg,vreg \x92\xEE\x20\xA\x0 THUMB32,VFPv2
|
||||
vreg,vreg,vreg \x42\xE\x20\xA\x0 ARM32,VFPv2
|
||||
|
||||
[VNMLAcc]
|
||||
vreg,vreg,vreg \x92\xEE\x10\xA\x40 THUMB32,VFPv2
|
||||
vreg,vreg,vreg \x42\xE\x10\xA\x40 ARM32,VFPv2
|
||||
|
||||
[VNMLScc]
|
||||
vreg,vreg,vreg \x92\xEE\x10\xA\x00 THUMB32,VFPv2
|
||||
vreg,vreg,vreg \x42\xE\x10\xA\x00 ARM32,VFPv2
|
||||
|
||||
[VNMULcc]
|
||||
vreg,vreg,vreg \x92\xEE\x20\xA\x40 THUMB32,VFPv2
|
||||
vreg,vreg,vreg \x42\xE\x20\xA\x40 ARM32,VFPv2
|
||||
|
||||
[VFMA]
|
||||
@ -1485,38 +1518,42 @@ vreg,vreg,vreg \x42\xE\x20\xA\x40 ARM32,VFPv2
|
||||
[VFNMS]
|
||||
|
||||
[VNEGcc]
|
||||
vreg,vreg \x92\xEE\xB1\xA\x40 THUMB32,VFPv2
|
||||
vreg,vreg \x42\xE\xB1\xA\x40 ARM32,VFPv2
|
||||
|
||||
[VSQRT]
|
||||
vreg,vreg \x92\xEE\xB1\xA\xC0 THUMB32,VFPv2
|
||||
vreg,vreg \x42\xE\xB1\xA\xC0 ARM32,VFPv2
|
||||
|
||||
[VSUB]
|
||||
vreg,vreg,vreg \x92\xEE\x30\xA\x40 THUMB32,VFPv2
|
||||
vreg,vreg,vreg \x42\xE\x30\xA\x40 ARM32,VFPv2
|
||||
|
||||
[DMB]
|
||||
[DMBcc]
|
||||
immshifter \x80\xF3\xBF\x8F\x50 THUMB32,ARMv7
|
||||
immshifter \x2E\xF5\x7F\xF0\x50 ARM32,ARMv7
|
||||
|
||||
[ISB]
|
||||
[ISBcc]
|
||||
immshifter \x80\xF3\xBF\x8F\x60 THUMB32,ARMv7
|
||||
immshifter \x2E\xF5\x7F\xF0\x60 ARM32,ARMv7
|
||||
|
||||
[DSB]
|
||||
[DSBcc]
|
||||
immshifter \x80\xF3\xBF\x8F\x40 THUMB32,ARMv7
|
||||
immshifter \x2E\xF5\x7F\xF0\x40 ARM32,ARMv7
|
||||
|
||||
[SMC]
|
||||
[SMCcc]
|
||||
immshifter \x2E\x01\x60\x00\x70 ARM32,ARMv7
|
||||
imm32 \x2E\x01\x60\x00\x70 ARM32,ARMv7
|
||||
|
||||
; Thumb armv6-m (gcc)
|
||||
[NEG]
|
||||
[NEGcc]
|
||||
|
||||
[SVC]
|
||||
[SVCcc]
|
||||
immshifter \x61\xDF\x0 THUMB,ARMv4T
|
||||
imm32 \x61\xDF\x0 THUMB,ARMv4T
|
||||
|
||||
imm32 \x2\x0F ARM32,ARMv4
|
||||
immshifter \x2\x0F ARM32,ARMv4
|
||||
imm32 \x2\x0F ARM32,ARMv4
|
||||
|
||||
[BXJcc]
|
||||
reg32 \x80\xF3\xC0\x8F\x0 THUMB32,ARMv6T2
|
||||
|
@ -1,2 +1,2 @@
|
||||
{ don't edit, this file is generated from armins.dat }
|
||||
710;
|
||||
746;
|
||||
|
@ -1295,6 +1295,13 @@
|
||||
code : #11#1#224;
|
||||
flags : if_arm32 or if_armv4
|
||||
),
|
||||
(
|
||||
opcode : A_VMOV;
|
||||
ops : 2;
|
||||
optypes : (ot_vreg,ot_vreg,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #144#238#176#10#64;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMOV;
|
||||
ops : 2;
|
||||
@ -1302,6 +1309,20 @@
|
||||
code : #64#14#176#10#64;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMOV;
|
||||
ops : 2;
|
||||
optypes : (ot_reg32,ot_vreg,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #144#238#16#10#16;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMOV;
|
||||
ops : 2;
|
||||
optypes : (ot_vreg,ot_reg32,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #144#238#0#10#16;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMOV;
|
||||
ops : 2;
|
||||
@ -1316,6 +1337,20 @@
|
||||
code : #64#14#0#10#16;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMOV;
|
||||
ops : 4;
|
||||
optypes : (ot_reg32,ot_reg32,ot_vreg,ot_vreg,ot_none,ot_none);
|
||||
code : #144#236#80#10#16;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMOV;
|
||||
ops : 4;
|
||||
optypes : (ot_vreg,ot_vreg,ot_reg32,ot_reg32,ot_none,ot_none);
|
||||
code : #144#236#64#10#16;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMOV;
|
||||
ops : 4;
|
||||
@ -1330,6 +1365,20 @@
|
||||
code : #64#12#64#10#16;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMOV;
|
||||
ops : 3;
|
||||
optypes : (ot_reg32,ot_reg32,ot_vreg,ot_none,ot_none,ot_none);
|
||||
code : #144#236#80#11#16;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMOV;
|
||||
ops : 3;
|
||||
optypes : (ot_vreg,ot_reg32,ot_reg32,ot_none,ot_none,ot_none);
|
||||
code : #144#236#64#11#16;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMOV;
|
||||
ops : 3;
|
||||
@ -1995,20 +2044,6 @@
|
||||
code : #6#0#64;
|
||||
flags : if_arm32 or if_armv4
|
||||
),
|
||||
(
|
||||
opcode : A_SWI;
|
||||
ops : 1;
|
||||
optypes : (ot_immediate,ot_none,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #2#15;
|
||||
flags : if_arm32 or if_armv4
|
||||
),
|
||||
(
|
||||
opcode : A_SWI;
|
||||
ops : 1;
|
||||
optypes : (ot_immediateshifter,ot_none,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #2#15;
|
||||
flags : if_arm32 or if_armv4
|
||||
),
|
||||
(
|
||||
opcode : A_SWP;
|
||||
ops : 3;
|
||||
@ -2338,6 +2373,20 @@
|
||||
code : #21#1#32#12;
|
||||
flags : if_arm32 or if_armv5te
|
||||
),
|
||||
(
|
||||
opcode : A_VLDM;
|
||||
ops : 2;
|
||||
optypes : (ot_memoryam4,ot_reglist,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #148#236#16#10;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VLDM;
|
||||
ops : 2;
|
||||
optypes : (ot_reg32,ot_reglist,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #148#236#16#10;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VLDM;
|
||||
ops : 2;
|
||||
@ -2352,6 +2401,20 @@
|
||||
code : #68#12#16#10;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VSTM;
|
||||
ops : 2;
|
||||
optypes : (ot_memoryam4,ot_reglist,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #148#236#0#10;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VSTM;
|
||||
ops : 2;
|
||||
optypes : (ot_reg32,ot_reglist,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #148#236#0#10;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VSTM;
|
||||
ops : 2;
|
||||
@ -2366,6 +2429,13 @@
|
||||
code : #68#12#0#10;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VPOP;
|
||||
ops : 1;
|
||||
optypes : (ot_reglist,ot_none,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #148#236#189#10;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VPOP;
|
||||
ops : 1;
|
||||
@ -2373,6 +2443,13 @@
|
||||
code : #68#12#189#10;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VPUSH;
|
||||
ops : 1;
|
||||
optypes : (ot_reglist,ot_none,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #148#237#45#10;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VPUSH;
|
||||
ops : 1;
|
||||
@ -2380,6 +2457,13 @@
|
||||
code : #68#13#45#10;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VLDR;
|
||||
ops : 2;
|
||||
optypes : (ot_vreg,ot_memoryam2,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #149#237#16#10;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VLDR;
|
||||
ops : 2;
|
||||
@ -2387,6 +2471,13 @@
|
||||
code : #69#13#16#10;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VSTR;
|
||||
ops : 2;
|
||||
optypes : (ot_vreg,ot_memoryam2,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #149#237#0#10;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VSTR;
|
||||
ops : 2;
|
||||
@ -4711,6 +4802,13 @@
|
||||
code : #104#185;
|
||||
flags : if_thumb or if_armv6t2
|
||||
),
|
||||
(
|
||||
opcode : A_VABS;
|
||||
ops : 2;
|
||||
optypes : (ot_vreg,ot_vreg,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #146#238#176#10#192;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VABS;
|
||||
ops : 2;
|
||||
@ -4718,6 +4816,13 @@
|
||||
code : #66#14#176#10#192;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VADD;
|
||||
ops : 3;
|
||||
optypes : (ot_vreg,ot_vreg,ot_vreg,ot_none,ot_none,ot_none);
|
||||
code : #146#238#48#10#0;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VADD;
|
||||
ops : 3;
|
||||
@ -4725,6 +4830,20 @@
|
||||
code : #66#14#48#10#0;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VCMP;
|
||||
ops : 2;
|
||||
optypes : (ot_vreg,ot_vreg,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #146#238#180#10#64;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VCMP;
|
||||
ops : 2;
|
||||
optypes : (ot_vreg,ot_immediateshifter,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #146#238#181#10#64;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VCMP;
|
||||
ops : 2;
|
||||
@ -4739,6 +4858,20 @@
|
||||
code : #66#14#181#10#64;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VCMPE;
|
||||
ops : 2;
|
||||
optypes : (ot_vreg,ot_vreg,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #146#238#180#10#192;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VCMPE;
|
||||
ops : 2;
|
||||
optypes : (ot_vreg,ot_immediateshifter,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #146#238#181#10#192;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VCMPE;
|
||||
ops : 2;
|
||||
@ -4753,6 +4886,20 @@
|
||||
code : #66#14#181#10#192;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VCVT;
|
||||
ops : 2;
|
||||
optypes : (ot_vreg,ot_vreg,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #147#238#184#10#192;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VCVT;
|
||||
ops : 3;
|
||||
optypes : (ot_vreg,ot_vreg,ot_immediateshifter,ot_none,ot_none,ot_none);
|
||||
code : #147#238#186#10#64;
|
||||
flags : if_thumb32 or if_vfpv3
|
||||
),
|
||||
(
|
||||
opcode : A_VCVT;
|
||||
ops : 2;
|
||||
@ -4767,6 +4914,13 @@
|
||||
code : #67#14#186#10#64;
|
||||
flags : if_arm32 or if_vfpv3
|
||||
),
|
||||
(
|
||||
opcode : A_VCVTR;
|
||||
ops : 2;
|
||||
optypes : (ot_vreg,ot_vreg,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #147#238#184#10#64;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VCVTR;
|
||||
ops : 2;
|
||||
@ -4774,6 +4928,13 @@
|
||||
code : #67#14#184#10#64;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VDIV;
|
||||
ops : 3;
|
||||
optypes : (ot_vreg,ot_vreg,ot_vreg,ot_none,ot_none,ot_none);
|
||||
code : #146#238#128#10#0;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VDIV;
|
||||
ops : 3;
|
||||
@ -4781,6 +4942,20 @@
|
||||
code : #66#14#128#10#0;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMRS;
|
||||
ops : 2;
|
||||
optypes : (ot_reg32,ot_regf,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #145#238#240#10#16;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMRS;
|
||||
ops : 2;
|
||||
optypes : (ot_regf,ot_regf,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #145#238#240#10#16;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMRS;
|
||||
ops : 2;
|
||||
@ -4795,6 +4970,13 @@
|
||||
code : #65#14#240#10#16;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMSR;
|
||||
ops : 2;
|
||||
optypes : (ot_regf,ot_reg32,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #145#238#224#10#16;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMSR;
|
||||
ops : 2;
|
||||
@ -4802,6 +4984,13 @@
|
||||
code : #65#14#224#10#16;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMLA;
|
||||
ops : 3;
|
||||
optypes : (ot_vreg,ot_vreg,ot_vreg,ot_none,ot_none,ot_none);
|
||||
code : #146#238#0#10#0;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMLA;
|
||||
ops : 3;
|
||||
@ -4809,6 +4998,13 @@
|
||||
code : #66#14#0#10#0;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMLS;
|
||||
ops : 3;
|
||||
optypes : (ot_vreg,ot_vreg,ot_vreg,ot_none,ot_none,ot_none);
|
||||
code : #146#238#0#10#64;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMLS;
|
||||
ops : 3;
|
||||
@ -4816,6 +5012,13 @@
|
||||
code : #66#14#0#10#64;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMUL;
|
||||
ops : 3;
|
||||
optypes : (ot_vreg,ot_vreg,ot_vreg,ot_none,ot_none,ot_none);
|
||||
code : #146#238#32#10#0;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VMUL;
|
||||
ops : 3;
|
||||
@ -4823,6 +5026,13 @@
|
||||
code : #66#14#32#10#0;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VNMLA;
|
||||
ops : 3;
|
||||
optypes : (ot_vreg,ot_vreg,ot_vreg,ot_none,ot_none,ot_none);
|
||||
code : #146#238#16#10#64;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VNMLA;
|
||||
ops : 3;
|
||||
@ -4830,6 +5040,13 @@
|
||||
code : #66#14#16#10#64;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VNMLS;
|
||||
ops : 3;
|
||||
optypes : (ot_vreg,ot_vreg,ot_vreg,ot_none,ot_none,ot_none);
|
||||
code : #146#238#16#10#0;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VNMLS;
|
||||
ops : 3;
|
||||
@ -4837,6 +5054,13 @@
|
||||
code : #66#14#16#10#0;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VNMUL;
|
||||
ops : 3;
|
||||
optypes : (ot_vreg,ot_vreg,ot_vreg,ot_none,ot_none,ot_none);
|
||||
code : #146#238#32#10#64;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VNMUL;
|
||||
ops : 3;
|
||||
@ -4844,6 +5068,13 @@
|
||||
code : #66#14#32#10#64;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VNEG;
|
||||
ops : 2;
|
||||
optypes : (ot_vreg,ot_vreg,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #146#238#177#10#64;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VNEG;
|
||||
ops : 2;
|
||||
@ -4851,6 +5082,13 @@
|
||||
code : #66#14#177#10#64;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VSQRT;
|
||||
ops : 2;
|
||||
optypes : (ot_vreg,ot_vreg,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #146#238#177#10#192;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VSQRT;
|
||||
ops : 2;
|
||||
@ -4858,6 +5096,13 @@
|
||||
code : #66#14#177#10#192;
|
||||
flags : if_arm32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VSUB;
|
||||
ops : 3;
|
||||
optypes : (ot_vreg,ot_vreg,ot_vreg,ot_none,ot_none,ot_none);
|
||||
code : #146#238#48#10#64;
|
||||
flags : if_thumb32 or if_vfpv2
|
||||
),
|
||||
(
|
||||
opcode : A_VSUB;
|
||||
ops : 3;
|
||||
@ -4932,13 +5177,20 @@
|
||||
opcode : A_SVC;
|
||||
ops : 1;
|
||||
optypes : (ot_immediate or ot_bits32,ot_none,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #97#223#0;
|
||||
flags : if_thumb or if_armv4t
|
||||
),
|
||||
(
|
||||
opcode : A_SVC;
|
||||
ops : 1;
|
||||
optypes : (ot_immediateshifter,ot_none,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #2#15;
|
||||
flags : if_arm32 or if_armv4
|
||||
),
|
||||
(
|
||||
opcode : A_SVC;
|
||||
ops : 1;
|
||||
optypes : (ot_immediateshifter,ot_none,ot_none,ot_none,ot_none,ot_none);
|
||||
optypes : (ot_immediate or ot_bits32,ot_none,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #2#15;
|
||||
flags : if_arm32 or if_armv4
|
||||
),
|
||||
|
Loading…
Reference in New Issue
Block a user