summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2019-09-03 20:59:13 +0000
committerflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2019-09-03 20:59:13 +0000
commit7293069cebf22f26cacf115eb524a7cd082bd23f (patch)
treeb1efdb8328bf4e192c24d63c8d257cfb59c44ebf
parent60570b813e9f1e6c2994a95f1623eb7028913840 (diff)
downloadfpc-7293069cebf22f26cacf115eb524a7cd082bd23f.tar.gz
+ AArch64: support for vX.8b/vX.16b register names
+ support for more than 256 registers in the register dat files - removed totherregisterset + AArch64: use vmov to load immediates if possible + AArch64: use eor to clear mm registers + small command line tool for quick creating of vfp register list in a64reg.dat git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42916 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--compiler/utils/gena64vfp.pp16
1 files changed, 16 insertions, 0 deletions
diff --git a/compiler/utils/gena64vfp.pp b/compiler/utils/gena64vfp.pp
new file mode 100644
index 0000000000..bd4ca3c8e1
--- /dev/null
+++ b/compiler/utils/gena64vfp.pp
@@ -0,0 +1,16 @@
+{ utility to avoid the tedious typing of register numbers for AArch64 VFP registers }
+var
+ i : longint;
+
+begin
+ for i:=0 to 31 do
+ begin
+ writeln('B',i,',$04,$01,$',hexstr(i,2),',b',i,',',i+64,',',i+64);
+ writeln('H',i,',$04,$03,$',hexstr(i,2),',h',i,',',i+64,',',i+64);
+ writeln('S',i,',$04,$09,$',hexstr(i,2),',s',i,',',i+64,',',i+64);
+ writeln('D',i,',$04,$0a,$',hexstr(i,2),',d',i,',',i+64,',',i+64);
+ writeln('Q',i,',$04,$05,$',hexstr(i,2),',q',i,',',i+64,',',i+64);
+ writeln('V',i,'8B,$04,$17,$',hexstr(i,2),',v',i,'.8b,',i+64,',',i+64);
+ writeln('V',i,'16B,$04,$18,$',hexstr(i,2),',v',i,'.16b,',i+64,',',i+64);
+ end;
+end.