__ldrt コンパイラ組み込み関数

このコンパイラ組み込み関数を使用して、コンパイラによって生成される命令ストリームに LDR{size}T 形式のアセンブリ言語命令を挿入します。C または C++ コードで LDRT 命令を使用して、メモリからデータをロードできます。

Show/hide構文

unsigned int __ldrt(const volatile void *ptr)

各項目には以下の意味があります。

ptr

メモリからロードされるデータのアドレスを指します。ロードされるデータのサイズを指定するには、パラメータを適切な整数型にキャストします。

Table 17. __ldrt コンパイラ組み込み関数によってサポートされるアクセス幅

命令[a]ロードされたデータのサイズC のキャスト
LDRSBT符号付きバイト(signed char *)
LDRBT符号なしバイト(char *)
LDRSHT符号付きハーフワード(signed short int *)
LDRHT符号なしハーフワード(short int *)
LDRTワード(int *)

[a] またはその等価命令


Show/hide戻り値

__ldrt コンパイラ組み込み関数は、ptr が示すメモリアドレスからロードされたデータを返します。

Show/hideエラー

LDRT 命令をサポートしないターゲット向けにコンパイルされる場合、コンパイラは __ldrt コンパイラ組み込み関数を認識しません。この場合、コンパイラによって警告またはエラーが生成されます。

__ldrt コンパイラ組み込み関数は、ダブルワードデータへのアクセスをサポートしません。サポートされないアクセス幅を指定すると、コンパイラによってエラーが生成されます。

Show/hide

int foo(void)
{
    int loc = 0xff;
    return __ldrt((const volatile int *)loc);
}

デフォルトオプションを使用してこのコードをコンパイルすると、以下のコードが生成されます。

||foo|| PROC
    MOV      r0,#0xff
    LDRBT    r1,[r0],#0
    MOV      r2,#0x100
    LDRBT    r0,[r2],#0
    ORR      r0,r1,r0,LSL #8
    BX       lr
    ENDP

Show/hide関連項目

Copyright © 2010 ARM. All rights reserved.ARM DUI 0491BJ
Non-ConfidentialID011811