-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
現在の VM は Inst 一つ一つにメモリを個別に割り当てているため、非常に効率が悪い。配列上に一列に並べるべき。
設計
- 現在、Inst が仮想関数を持っているが、これを排除して仮想関数を持たないようにする。
- どの Inst であるかどうかを判定するための kind メンバを持たせる。dispatch は、kind に対する switch で行う。
- code は Inst を vector の上に隙間なく敷き詰めるようなレイアウトにする。
- Inst の具体クラスのサイズは 8 の倍数になるように注意しないといけない。そういないとアライメントが狂う。
- 現在 ip++ としているところは、ip += sizeof(...) という形になる。
- 現在 dynamic_cast で Inst の種類を判定しているところは、kind の比較に置き換える。
Reactions are currently unavailable