英語版
このページの英語版を見る
dmd.target
ターゲット固有のパラメータを扱う
クロス・コンパイルを可能にするために、コンパイラがバイナリを生成するとき
を生成する場合、ターゲット情報を抽象化する必要がある。
を抽象化する必要がある。これは、主にTarget を通して、このモジュールで行われている。
注釈: DMD自体はクロスコンパイルをサポートしていないが、GDCとLDCはサポートしている。 そのため、このモジュールは(時には大きく)修正されている、 貢献者は、その変更がどのように影響するかを確認する必要がある。
Authors:
License:
ソース target.d
- void
addDefaultVersionIdentifiers
(const ref Paramparams
, const ref Targettgt
); - dmdにデフォルトのversion 識別子を追加し、ターゲットプラットフォームを ターゲットプラットフォームを
params
. https://dlang.org/spec/version.html#predefined-versions最終的なフラグ(コマンドライン、DFLAGS環境変数、設定ファイルなど)を追加するために、すべての引数の解析(コマンドライン、DFLAGS環境変数、設定ファイルなど)の後に実行する必要がある。 X86_64 変数と設定ファイル)の後に実行する必要がある。 CRuntime のような)。Parameters:Param params
どのターゲットでコンパイルするか(setTarget() によって設定される) Target tgt
ターゲット - struct
Target
; - バックエンドターゲットを記述する。現時点では不完全だが、将来的には を含むようになるはずである。 情報を含むようになるはずである。多くの場合、sizeof()の呼び出しは、データ型サイズを取得するために直接使用することはできない。 多くの場合、sizeof()の呼び出しは、データ型サイズの取得には直接使えない。 を使用することになるからである。
- enum
OS
: ubyte; - Target.OSのビットデコーディング
- ubyte
ptrsize
; - ポインタのサイズ(バイト
- ubyte
realsize
; - 実数がメモリで消費するサイズ
- ubyte
realpad
; - CPUの実サイズにパディングを追加して実サイズに合わせる。
- ubyte
realalignsize
; - 実数のアラインメント
- ubyte
classinfosize
; - サイズClassInfo
- ulong
maxStaticDataSize
; - 静的データの最大サイズ
- TargetC
c
; - C ABI
- TargetCPP
cpp
; - C++ ABI
- TargetObjC
objc
; - Objective-C ABI
- const(char)[]
architectureName
; - アーキテクチャ名
- const(char)[]
obj_ext
; - オブジェクトファイルの拡張子
- const(char)[]
lib_ext
; - 静的ライブラリファイルの拡張子
- const(char)[]
dll_ext
; - ダイナミック・ライブラリ・ファイルの拡張子
- bool
run_noext
; - 拡張子なしのソースの実行を許可する
- struct
FPTypeProperties
(T); - 浮動小数点型のすべてのプロパティを表す値
- real_t
max
; - 無限大でない最大の表現可能な値
- real_t
min_normal
; - 0でない正規化された表現可能な最小値
- real_t
nan
; - NaN値
- real_t
infinity
; - 無限大値
- real_t
epsilon
; - 値1に対する最小の増分値
- long
dig
; - 精度の小数点以下の桁数
- long
mant_dig
; - 仮数部のビット数
- long
max_exp
; - 2が表現可能な最大のint値
max_exp
-1が表現可能である - long
min_exp
; - 2が表現可能な最小int値
min_exp
-1が正規化値として表現可能である。 - long
max_10_exp
; - 10
max_10_exp
が表現可能な最大int値 - long
min_10_exp
; - 10が正規化値として表現可能な最小int値
min_10_exp
は正規化値として表現可能である。
- FPTypeProperties!float
FloatProperties
; - FPTypeProperties!double
DoubleProperties
; - FPTypeProperties!real_t
RealProperties
; - void
_init
(const ref Paramparams
); - ターゲットを初期化する
- @safe Target.ObjectFormat
objectFormat
(); - 使用するオブジェクトフォーマットを決定する
- @safe void
setCPU
(); - 使用する命令セットを決定する
- @safe void
deinitialize
(); - コンパイラのグローバル状態を初期化する。これは、_init 。 状態に戻すことができる。
- uint
alignsize
(Typetype
); - 指定された型のターゲット・メモリ・アラインメント・サイズを要求する。Parameters:
Type type
検査する型 Returns:アラインメント(バイト - uint
fieldalign
(Typetype
); - 指定された型の、要求されたターゲットフィールドアライメントサイズ。Parameters:
Type type
検査する型 Returns:バイト単位のアライメント - Type
va_listType
(const ref Locloc
, Scope*sc
); - ターゲットのva_list 型を表す。_argptr 宣言に必要である。
注釈: Posix/x86_64の場合、これはva_list型の引数を渡すために実際に使われる型を返す。 va_list型の引数を渡すときに実際に使われる型を返す。
Returns:Type これは を表す。va_list - @safe int
isVectorTypeSupported
(intsz
, Typetype
); - ターゲットがベクトル型をサポートしているかどうかをチェックする。Parameters:
int sz
ベクトル型のサイズ(バイト) Type type
ベクトル要素型 Returns:0 ベクター型がサポートされている、 1 ベクタ型はターゲットでまったくサポートされていない。 2 ベクター要素型はサポートされていない。 3 ベクトルサイズがサポートされていない - bool
isVectorOpSupported
(Typetype
, EXPop
, Typet2
= null); - ターゲットがベクターに対して指定された操作をサポートしているかどうかをチェックする。Parameters:
Type type
ターゲットの演算型 EXP op
に対して行われる単項演算または二項演算。 type
Type t2
に対して行われる単項演算または二項演算。 op
がバイナリ演算の場合Returns:演算がサポートされているか、型がベクトルでない場合は真 - @safe LINK
systemLinkage
(); - ターゲットのデフォルトのシステム・リンケージ。Returns:LINK に使用する。extern(System)
- TypeTuple
toArgTypes
(Typet
); - 引数型がターゲット上の関数にどのように渡されるかを記述する。Parameters:
Type t
型を分解する。 Returns:型が1つ以上のレジスタで渡される場合は、型のタプル 型が常にスタック上で渡される場合は、空のタプル 型がvoid 、またはarg型がターゲットでサポートされていない場合はnullとなる。 - bool
isReturnOnStack
(TypeFunctiontf
, boolneedsThis
); - 関数のリターン・スタイルを決定する。 呼び出し元のスタックへの隠されたポインタを通してか。Parameters:
TypeFunction tf
チェックする関数型 bool needsThis
関数型が非スタティックメンバ関数の場合、trueを返す。 Returns:関数の戻り値がスタック上にある場合、trueを返す。 - bool
preferPassByRef
(Typet
); - 指定されたPOD型のin パラメータを、参照で渡すか値で渡すかを決定する。 参照渡しか値渡しかを決定する。-preview=in でのみ使用される!Parameters:
Type t
in パラメータの型は POD でなければならない。 Returns:true in パラメータが参照渡しである場合 - Expression
getTargetInfo
(const(char)*name
, const ref Locloc
); - キーでtargetInfoを取得するParameters:
const(char)* name
取得するtargetInfoの名前 Loc loc
エラーメッセージに使用する場所 Returns:要求されたtargetInfoの式 - @safe bool
isCalleeDestroyingArgs
(TypeFunctiontf
); - Parameters:
TypeFunction tf
呼び出される関数の型 Returns:true 呼び出し元が引数のデストラクタを呼び出す場合。 - bool
libraryObjectMonitors
(FuncDeclarationfd
, Statementfbody
); - オブジェクト・モニターの処理系が常にDランタイム・ライブラリ(rt/monitor_.d)に定義されている場合、trueを返す。 を返す。Parameters:
FuncDeclaration fd
synchronized ストレージクラスを持つ関数。 Statement fbody
の関数本体全体。 fd
Returns:false ターゲットのバックエンドがモニターの同期を扱う場合。 - const @safe bool
supportsLinkerDirective
(); - ターゲットがpragma(linkerDirective) をサポートしている場合は真を返す。Returns:false ターゲットが をサポートしていない場合。pragma(linkerDirective)
- @safe bool
isXmmSupported
(); - Returns:xmmの使用がサポートされていればtrueを返す
- const nothrow @nogc @property scope @safe bool
isPOSIX
(); - Returns:POSIX用のコードを生成する場合はtrue
- @safe uint
stackAlign
(); - Returns:スタックのアラインメント
- struct
TargetC
; - extern(C) ABIとのインターフェイスに特有の関数と変数。
- bool
crtDestructorsSupported
; - すべてのプラットフォームがcrt_destructorをサポートしているわけではない
- ubyte
boolsize
; - C_Bool 型のサイズ。
- ubyte
shortsize
; - Cshort またはunsigned short 型のサイズ。
- ubyte
intsize
; - Cint またはunsigned int 型のサイズ。
- ubyte
longsize
; - Clong またはunsigned long 型のサイズ
- ubyte
long_longsize
; - Clong long またはunsigned long long 型のサイズ
- ubyte
long_doublesize
; - Cのサイズlong double
- ubyte
wchar_tsize
; - Cwchar_t 型のサイズ。
- Runtime
runtime
; - リンク先のCランタイムのベンダー
- BitFieldStyle
bitFieldStyle
; - Cコンパイラによって異なる
- struct
TargetCPP
; - extern(C++)ABIとのインターフェイス固有の関数と変数。
- bool
reverseOverloads
; - (dmcやclのように)オーバーロードされた関数がグループ化され、逆順になっているかどうかを設定する。
- bool
exceptions
; - C++例外のキャッチがサポートされているかどうかを設定する。
- bool
twoDtorInVtable
; - C++ ABIが、削除するデストラクタと削除しないデストラクタをvtableに入れる。
- bool
splitVBasetable
; - C++ ABIが仮想関数と仮想ベースに別々のテーブルを使用する場合に設定する。
- bool
wrapDtorInExternD
; - C++のdtorが、ランタイムから呼び出し可能なDラッパーを必要とする場合に設定する。
- Runtime
runtime
; - リンクするC++ランタイムのベンダーを指定する。
- const(char)*
toMangle
(Dsymbols
); - 与えられたシンボルをC++ ABI用にマングル化する。Parameters:
Dsymbol s
C++リンケージ宣言 Returns:シンボルの文字列マングリング - const(char)*
typeInfoMangle
(ClassDeclarationcd
); - 指定されたクラス宣言の C++ ABI 用 RTTI マングリングを取得する。Parameters:
ClassDeclaration cd
C++ リンクを持つクラス Returns:C++型情報の文字列マングリング - const(char)*
thunkMangle
(FuncDeclarationfd
, intoffset
); - 与えられた "関数"へのthis-adjustingサンクのマングル名を取得する。 宣言にマングルする。Parameters:
FuncDeclaration fd
C++リンケージ付き関数 int offset
vptrへの呼び出しオフセット Returns:C++サンクの文字列マングリング、未処理の場合はNULL - const(char)*
typeMangle
(Typet
); - C++ ABIのベンダー固有の型マングリングを取得する。Parameters:
Type t
検査する型 Returns:型がターゲット上で特別にマングルされている場合は文字列。 未処理の場合はnull - Type
parameterType
(Typet
); - 与えられた引数を 関数に渡す際に実際に使用される型を取得する。 extern(C++) 、未処理の場合はnull 。Parameters:
Type t
渡される型。 Returns:Type 型に使用する。t
. - bool
fundamentalType
(const Typet
, ref boolisFundamental
); - typeがベンダー固有の基本型かどうかをチェックする。Parameters:
Type t
検査する型 bool isFundamental
結果を格納する場所 Returns:isFundamentalが"関数"によって設定された場合、trueを返す。 - uint
derivedClassOffset
(ClassDeclarationbaseClass
); - 与えられた基底クラスから派生したextern(C++) クラスのフィールドの開始オフセット位置を取得する。 のフィールドの開始オフセット位置を取得する。Parameters:
ClassDeclaration baseClass
C++ リンクを持つ基底クラス Returns:派生クラスのフィールドを配置するための開始オフセット
- struct
TargetObjC
; - extern(Objective-C)ABIとのインターフェイスに固有の関数と変数。
- bool
supported
; - コンパイラがObjective-Cとのインターフェイスが可能かどうかを設定する。
- Target
target
;
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku