[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[b-free: 1114] Re: OS による言語へのスタック機構のサポート



 隆一さん、こんにちは。リギーコーポレーションの片桐です。

|# たしか、UNIX GURU の定義に cat でアセンブラプログラムを組める
|# というのがあった気がします。

 よく分からないけどすごいですね(^^;。

|ただ、UNIX の C コンパイラ (GCC に限らず) は、一般にアセンブラコードを
|出力するようにできており、出力結果をいじくることもできるので、アセンブ
|ラを扱うこと自体は簡単にできると思います。

 つい最近、gccのオプションを調べていたら「アセンブラソースの状態で残す」
というのがあった気がします。( -M なんていうのもつい最近知ったことです)
 いろいろ実験すると面白そうですね。


|>  のような感じで使いたいわけですが、問題は、これら多くの関数すべて
|> において、それから関数→関数へ渡る間も含めて、一貫して同一レジスタ
|> の使用(および他用途での破壊からの保護)が約束されるのでしょうか。
|>  ディスパッチャ→下位関数へは、ポインタへのポインタを渡すんです
|> よね。(レジスタへのポインタというのも変なものですね(^^;)
|
|うーん、これっていくつかのレジスタを特別な処理用に確保するという
|ことですよね。多分、GCC を作り直せばできると思います。

 了解しました。

|ただ、結果としてコンパイラが使えるレジスタが 3 つ減ることになるの
|で、単純な処理もレジスタだけでは間に合わなくなり、メモリを頻繁に
|使うことになりそうです。

 そうですか。インテル系を念頭に置く以上はこの手は難しそうですね。

 ところで、初心者的なことで恐れ入りますが教えてください。
 B-FreeあるいはTRONで想定している通常のアプリケーションで、マルチスレ
ッドが要求される割り合いと言いますか、場面は・・と言うべきなのかも知れ
ませんが、どの程度でしょうか。(register話の発端はここだったので)


                                片桐 明  (株)リギーコーポレーション
                                killy@rigy.co.jp
                                NIFTY: PAG01434