0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Xbyak_aarch64をRaspberry Pi3で動かす

Last updated at Posted at 2020-03-29

あらすじ

Armv8-A(AArch64)向けJust-In-TimeアセンブラXbyak_aarch64をRaspberry Pi3で動かしてみた。
Xbyak_aarch64はArmv8-AのAArch64 stateの命令でJITコードを組み立ててそれを動かせるOSSである。
もともとはArmv8-AなCPUを搭載したArmサーバで動かす用途に開発されたっぽい。
Xbyak_aarch64を動かすためには、AArch64 stateが動くCPUで、かつ、64ビットOSが動いていて、かつ、64ビットの実行ファイルをmakeできる環境が必要となる。試してないけど、たぶんAndroidスマホでも動くはず。

実行環境

Hardware(ハードウェア)

Raspberry Pi 3 Model B Rev 1.2
CPUはBCM2835

OS

$ uname -a
$ Linux ubuntu 5.3.0-1029-raspi2 #21~18.04.1-Ubuntu SMP Mon Feb 17 18:03:27 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux

実行方法

  • UbuntuのサイトからRaspberry Pi3用の64-bit用のUbuntu 18.04.4 LTSをダウンロード。
  • ダウンロードしたファイルを展開し、win32diskimagerでマイクロSDHCカードに書き込み。
  • Internetにつなぐ必要があるため、Raspberry Pi3に有線LANケーブルを接続する。
  • 書き込んだカードをRaspberry Pi3に差し込んで電源onして起動。
  • プリセットされているアカウント(ID:ubuntu、Password:ubuntu)があるので、これでログイン(以降も同じ)。
  • キーボード設定が英語キーボードになっていたのを日本語キーボードに変更する。
sudo dpkg-reconfigure keyboard-configuration
  • 必要なパッケージをインストールするため、以下を実行。
sudo apt update
sudo apt upgrade
sudo apt install g++
  • Xbyak_aarch64をダウンロードする。
git clone https://github.com/fujitsu/xbyak_aarch64.git
  • サンプルプログラムをmakeしてみる。Xbyak_aarch64はc++11をサポートするため、オプションを付けておく。
cd xbyak_aarch64/sample
g++ -std=c++11 add.cpp
  • サンプルプログラム(JITで「3+7」を実行するコードを組み立て、それを実行する)を動かしてみる。標準出力に7が出力され、JITコードが動いているっぽい。
./a.out
7
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?