gena64vfp.pp 1.6 KB

12345678910111213141516171819202122232425262728
  1. { utility to avoid the tedious typing of register numbers for AArch64 VFP registers }
  2. var
  3. i : longint;
  4. begin
  5. for i:=0 to 31 do
  6. begin
  7. writeln('B',i,',$04,$01,$',hexstr(i,2),',b',i,',',i+64,',',i+64);
  8. writeln('H',i,',$04,$03,$',hexstr(i,2),',h',i,',',i+64,',',i+64);
  9. writeln('S',i,',$04,$09,$',hexstr(i,2),',s',i,',',i+64,',',i+64);
  10. writeln('D',i,',$04,$0a,$',hexstr(i,2),',d',i,',',i+64,',',i+64);
  11. writeln('Q',i,',$04,$0b,$',hexstr(i,2),',q',i,',',i+64,',',i+64);
  12. // SUBNONE, to be able to parse shorthand notations like "add.4h v0, v1, v2"
  13. writeln('V',i,',$04,$00,$',hexstr(i,2),',v',i,',',i+64,',',i+64);
  14. writeln('V',i,'_B,$04,$20,$',hexstr(i,2),',v',i,'.b,',i+64,',',i+64);
  15. writeln('V',i,'_H,$04,$21,$',hexstr(i,2),',v',i,'.h,',i+64,',',i+64);
  16. writeln('V',i,'_S,$04,$22,$',hexstr(i,2),',v',i,'.s,',i+64,',',i+64);
  17. writeln('V',i,'_D,$04,$23,$',hexstr(i,2),',v',i,'.d,',i+64,',',i+64);
  18. writeln('V',i,'_8B,$04,$18,$',hexstr(i,2),',v',i,'.8b,',i+64,',',i+64);
  19. writeln('V',i,'_16B,$04,$19,$',hexstr(i,2),',v',i,'.16b,',i+64,',',i+64);
  20. writeln('V',i,'_4H,$04,$1a,$',hexstr(i,2),',v',i,'.4h,',i+64,',',i+64);
  21. writeln('V',i,'_8H,$04,$1b,$',hexstr(i,2),',v',i,'.8h,',i+64,',',i+64);
  22. writeln('V',i,'_2S,$04,$1c,$',hexstr(i,2),',v',i,'.2s,',i+64,',',i+64);
  23. writeln('V',i,'_4S,$04,$1d,$',hexstr(i,2),',v',i,'.4s,',i+64,',',i+64);
  24. writeln('V',i,'_1D,$04,$1e,$',hexstr(i,2),',v',i,'.1d,',i+64,',',i+64);
  25. writeln('V',i,'_2D,$04,$1f,$',hexstr(i,2),',v',i,'.2d,',i+64,',',i+64);
  26. end;
  27. end.