aarch64 AArch64 Port Project

番茄系统家园 · 2021-08-07 18:21:53

aarch64  AArch64 Port Project

汇编编译运行

这是通过sve指令计算字符串长度的例子运行结果如下

注意指令是开始支持的因此-后面的参数是-asve

$-c---gnu-gcc-g-Wall-marcharmv8.2-asve-O2-c-osve_strlen_test.osve_strlen_test.cccsve_strlen.osve_strlen_test.o-osve_strlen./sve_strlenlen9ofhellosverm-f*.osve_strlensve_hello

因为这个例子的代码量比较少因此贴出sourcecode的源代码更多内容

见参考文献[6]

$catsve_strlen.S//reference:https://alastairreid.github.io/papers/sve-ieee-micro-2017.pdf.archarmv8.2-asve.text.align2.globalsve_strlen.typesve_strlen,%functionsve_strlen:movx1,x0ptruep0.b.loop:setffrldff1bz0.b,p0/z,[x1]rdffrp1.b,p0/zcmpeqp2.b,p1/z,z0.b,#0brkbsp2.b,p1/z,p2.bincpx1,p2.bb.last.loopsubx0,x1,x0ret

AARCH64SVEintrinsics编译运行

这是一个通过sveintrinsics做批量运算的例子运行makerun_intrinsicsclean结果如下

$makerun_intrinsicsclean/home/dev/bin/gcc_sve/bin/aarch64-linux-gnu-gcc-g-Wall-marcharmv8.2-asve-O2-c-osve_hello.osve_hello.cccsve_hello.o-osve_hello./sve_hello0.9880950.9880950.988095,0.000000,0.9880951.4880951.4880951.488095,0.500000,0.9880951.6547621.6547621.654762,0.666667,0.9880951.7380951.7380951.738095,0.750000,0.9880951.7880951.7880951.788095,0.800000,0.9880951.8214291.8214291.821429,0.833333,0.9880951.8452381.8452381.845238,0.857143,0.9880951.8630951.8630951.863095,0.875000,0.9880951.8769841.8769841.876984,0.888889,0.9880951.8880951.8880951.888095,0.900000,0.988095rm-f*.osve_strlensve_hello

附录

下载附件ubuntu-19.04-dockerfile和docker-build.sh

在命令行上输入如下命令等待一段时间环境就会创建成功。

./docker-build.sh

参考文献

[1]SVEinQEMU’slinux-usermode

[2]交叉编译支持SVEACLE的gcc

[3]qemu-user-staticrelease

[4]ARM64编译工具链下载

[5]AARCH64samplecode

[6]AlastairReid’page

相关阅读

  • 玩aarch64最方便的方法
  • aarch64 是什么型号
  • aarch64 AArch64 Port Project
  • 免责声明: 凡标注转载/编译字样内容并非本站原创,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如果你觉得本文好,欢迎推荐给朋友阅读;本文链接: https://m.nndssk.com/post/25721.html。
    猜你喜欢
    最新应用
    热门应用