<< 31/66 >>
First Last

ELVMTargetMachine.cpp

  static std::string computeDataLayout(const Triple &TT) {
    return "ELVM-e-m:e-p:32:32-i32:32-n32-S32";
  }

ELVM- というプレフィックスは勝手拡張で、 IsELVM というグローバル変数をセットして、そこらじゅうで適当なことを適当にやる

  unsigned DataLayout::inBytes(unsigned Bits) {
    if (Bits % 8)
      report_fatal_error("number of bits must be a byte width multiple");
    if (IsELVM)
      return (Bits + 31) / 32;
    return Bits / 8;
  }

LLVM は 1byte == 8bit を想定しているのでこういう勝手拡張が必要