beet's soil

競プロのことなど

macOS Sierraでxspimの環境構築

linux系じゃないと動かないと思った?

演習で使うことになったので家でもできるようにxspimを導入した。

  1. ダウンロード

https://sourceforge.net/p/spimsimulator/code/HEAD/tree/
からダウンロードする。
上部のDownload Snapshotをクリックするとダウンロードできる。

  1. Makefileの設定

spimsimulator-code-690/xspim/Makefile

CDEBUGFLAGS = -g

CDEBUGFLAGS = -g -L /opt/X11/lib/
に、

CFLAGS = -I. -I$(CPU_DIR) $(DEFINES) -g -Wall -pedantic -Wextra -Wunused -Wno-write-strings -x c++

CFLAGS = -I. -I$(CPU_DIR) $(DEFINES) -g -Wall -pedantic -Wextra -Wunused -Wno-write-strings -x c++ -I /opt/X11/include/
に書き換える。

  1. gccのインストール

macgccは実はclangなのでhomebrewからインストールしてパスを通す。
$ brew install gcc49
$ sudo ln -sf /usr/local/bin/gcc-4.9 /usr/local/bin/gcc
$ sudo ln -sf /usr/local/bin/g++-4.9 /usr/local/bin/g++
.bashrcなどに
export PATH='/usr/local/bin':$PATH
としてパスの優先度を上げておく。

  1. exception.sの配置

/usr/share/spim/下に配置する。
$ cd /usr/share/
$ sudo mkdir spim
セキュリティレベル云々でsudoしてもディレクトリが作れないので、
Macを再起動し、[Command+R]を押してリカバリーモードで起動する。
[ユーティリティ]->[ターミナル]を選択し、
$ csrutil disable
を実行して再起動。
$ csrutil status
で disabled になっていることを確認する

  1. make

$ make
$ make install
として、
$ xspim &
で、起動すれば完了

  1. 実行例

アセンブリを書いて
f:id:beet_aizu:20161108012112p:plain
loadして
f:id:beet_aizu:20161108012110p:plain
runして
f:id:beet_aizu:20161108012108p:plain
結果が出る
f:id:beet_aizu:20161108012106p:plain
動いた〜!


参考にしたサイト
ac-mopp.blogspot.jp
qiita.com
berukann.hatenablog.jp