LLVMにRenesas RL78をPortingしようとしているのかな?

こんにちは。NoMaYです。

ウェブで調べ物をしていて気付いたのですが、RenesasさんはLLVM(今はGCCと並ぶ著名なフリーコンパイラ)にRL78をPortingしようとしているのかも、、、

[llvm-dev] New LLVM backend for Renesas RL78 MCU
Sebastian Perta via llvm-dev llvm-dev at lists.llvm.org
Wed Apr 1 10:26:05 PDT 2020
lists.llvm.org/pipermail/llvm-dev/2020-April/140546.html
 

Parents
  • こんにちは。NoMaYです。

    RenesasさんのLLVM-RL78コンパイラのユーザーズマニュアルを見ていて気付いたのですけれども、以下の件は(制限はあるにせよ)既にLLVM-RL78コンパイラのアセンブラでアセンブル出来るようになっていたようですね。失礼しました。

    > (1) アセンブラの文法に互換性が無い
    > ⇒ 誰かCC-RLのアセンブラ文法互換のアセンブラを作っちゃえ。(ソースコンバータでも良いのかも。)

    user_manual.pdf (私はLLVM for Renesas RL78 10.0.0.202306のインストールフォルダのものを見ました。)

    Assembler compatibility

    LLVM RL78 supports most of the CC-RL assembly expressions, operators and directives, with a couple of exceptions and restrictions.

    Contrary to CC-RL, where most integers are handled as unsigned, in LLVM absolute values are handled as 64 bit signed integers.
    Expressions will be evaluated at this bitwidth, then truncated if needed to the appropriate width.

    This results in some differences when evaluating expressions.
    For example: -1 > 1 will evaluate to 1 (True) in CC-RL and to 0 (False) in LLVM.

    While CC-RL assembler is case insensitive, currently in LLVM  only the uppercase operators/directives are supported, this will be addressed in next release.

    Operators and directives

    …以下省略…


Reply
  • こんにちは。NoMaYです。

    RenesasさんのLLVM-RL78コンパイラのユーザーズマニュアルを見ていて気付いたのですけれども、以下の件は(制限はあるにせよ)既にLLVM-RL78コンパイラのアセンブラでアセンブル出来るようになっていたようですね。失礼しました。

    > (1) アセンブラの文法に互換性が無い
    > ⇒ 誰かCC-RLのアセンブラ文法互換のアセンブラを作っちゃえ。(ソースコンバータでも良いのかも。)

    user_manual.pdf (私はLLVM for Renesas RL78 10.0.0.202306のインストールフォルダのものを見ました。)

    Assembler compatibility

    LLVM RL78 supports most of the CC-RL assembly expressions, operators and directives, with a couple of exceptions and restrictions.

    Contrary to CC-RL, where most integers are handled as unsigned, in LLVM absolute values are handled as 64 bit signed integers.
    Expressions will be evaluated at this bitwidth, then truncated if needed to the appropriate width.

    This results in some differences when evaluating expressions.
    For example: -1 > 1 will evaluate to 1 (True) in CC-RL and to 0 (False) in LLVM.

    While CC-RL assembler is case insensitive, currently in LLVM  only the uppercase operators/directives are supported, this will be addressed in next release.

    Operators and directives

    …以下省略…


Children
No Data