From a3470f57e3952cf32b7d11628decb53e10a7b12c Mon Sep 17 00:00:00 2001 From: Ushitora Anqou Date: Mon, 30 Mar 2020 22:24:28 +0900 Subject: [PATCH] Rename the title --- README.md | 4 ++-- main.asciidoc | 20 +++++++++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e16c9af..1c62ed1 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ -# 自作ISAのためのLLVMバックエンドを書く薄い本(予定) +# 手を動かせばできるLLVMバックエンド チュートリアル(WIP) Creative Commons License [![Build Status](https://travis-ci.org/ushitora-anqou/write-your-llvm-backend.svg?branch=master)](https://travis-ci.org/ushitora-anqou/write-your-llvm-backend) -別に売る気はない。鋭意執筆中。 +自作ISAのためのLLVMバックエンドをイテレーティブに作ります。鋭意執筆中。 [ここからmasterが読めます。](https://ushitora-anqou.github.io/write-your-llvm-backend/) diff --git a/main.asciidoc b/main.asciidoc index 50bc449..121f0d4 100644 --- a/main.asciidoc +++ b/main.asciidoc @@ -1,4 +1,4 @@ -= 自作ISAのためのLLVMバックエンドを書く薄い本 += 手を動かせばできるLLVMバックエンド チュートリアル 艮 鮟鱇 :toc: left :icons: font @@ -6,7 +6,8 @@ == FIXME -文中のFIXME他直すべきものをここにリストにする。 +AsciiDocのコメントを用いて文中にFIXMEを仕込む。 +その他のFIXME(全般的なものなど)をここにリストにする。 * だ・である調をです・ます調に変える。 @@ -271,8 +272,21 @@ LLVM (http://llvm.org/): この章ではLLVMバックエンドの一部としてアセンブラを実装します。 具体的にはLLVMのMCLayerを実装し、アセンブリからオブジェクトファイルへの変換を可能にします。 +一度にアセンブラ全体を作るのは難しいため、まずレジスタのみを使用する演算命令に絞って実装し、 +その後メモリを使用する命令をカバーします。 -=== 簡易的なアセンブラを実装する +=== TableGenファイルを追加する + +LLVMのDSLであるTableGenを使用してCAHPのレジスタや命令について記述します。 +追加スべきTableGenファイルはおおよそ次のとおりです。 + +* `CAHPRegisterInfo.td`: レジスタを定義。 +* `CAHPInstrFormats.td`: 命令形式を定義。 +* `CAHPInstrInfo.td`: 命令を定義。 +* `CAHP.td`: 全体に関することを定義。 + +=== `MCTargetDesc` を追加する +=== `CAHPAsmParser` を追加する === `CAHPInstPrinter` を実装する === テストを書く === メモリ演算を追加する