Ignore:
Timestamp:
Aug 23, 2017, 9:27:43 AM (7 years ago)
Author:
coas-nagasima
Message:

文字コードを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm_insn.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  上記著作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    13  *  変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28  *      と.
    29  *    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33  *    (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36  *        報告すること.
    37  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38  *      害からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    42  *      由に基づく請求からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44  *      å
    45 è²¬ã™ã‚‹ã“と.
     10 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
    4632 *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52  *  の責任を負わない.
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    5338 *
    5439 *  $Id$
     
    5641
    5742/*
    58  *              ARMコアの特殊命令のインライン関数定義
    59  *
    60  *  このヘッダファイルは,arm.hからインクルードされる.arm.hから分離し
    61  *  ているのは,コンパイラによるインラインアセンブラの記述方法の違いを
    62  *  吸収するために,このファイルのみを置き換えればよいようにするためで
    63  *  ある.
     43 *              ARMコアの特殊命令のインライン関数定義
     44 *
     45 *  このヘッダファイルは,arm.hからインクルードされる.arm.hから分離し
     46 *  ているのは,コンパイラによるインラインアセンブラの記述方法の違いを
     47 *  吸収するために,このファイルのみを置き換えればよいようにするためで
     48 *  ある.
    6449 */
    6550
     
    7055
    7156/*
    72  *  CLZ(Count Leading Zero)命令
     57 *  CLZ(Count Leading Zero)命令
    7358 */
    7459#if __TARGET_ARCH_ARM >= 6
     
    8671
    8772/*
    88  *  メモリが変更されることをコンパイラに伝えるためのマクロ
     73 *  メモリが変更されることをコンパイラに伝えるためのマクロ
    8974 */
    9075#define ARM_MEMORY_CHANGED      Asm("":::"memory")
    9176
    9277/*
    93  *  ステータスレジスタの操作関数
     78 *  ステータスレジスタの操作関数
    9479 */
    9580#ifndef __thumb__
    9681
    9782/*
    98  *  ステータスレジスタ(CPSR)の現在値の読出し
     83 *  ステータスレジスタ(CPSR)の現在値の読出し
    9984 */
    10085Inline uint32_t
     
    10893
    10994/*
    110  *  ステータスレジスタ(CPSR)の現在値の変更
     95 *  ステータスレジスタ(CPSR)の現在値の変更
    11196 */
    11297Inline void
     
    118103#else /* __thumb__ */
    119104/*
    120  *  Thumbモードではmrs/msr命令が使用できないため,関数として実現して,
    121  *  ARMモードに移行して実行する.
    122  */
    123 
    124 /*
    125  *  ステータスレジスタ(CPSR)の現在値の読出し
     105 *  Thumbモードではmrs/msr命令が使用できないため,関数として実現して,
     106 *  ARMモードに移行して実行する.
     107 */
     108
     109/*
     110 *  ステータスレジスタ(CPSR)の現在値の読出し
    126111 */
    127112extern uint32_t current_cpsr(void);
    128113
    129114/*
    130  *  ステータスレジスタ(CPSR)の現在値の変更
     115 *  ステータスレジスタ(CPSR)の現在値の変更
    131116 */
    132117extern void set_cpsr(uint32_t cpsr);
     
    135120
    136121/*
    137  *  割込み禁止/許可関数
    138  *
    139  *  ARMv6から追加されたシステム状æ
    140 ‹ã‚’変更する命令を使った割込み禁止/許
    141  *  可のための関数.
    142  */
    143 #if __TARGET_ARCH_ARM >= 6
    144 
    145 /*
    146  *  IRQの禁止
     122 *  割込み禁止/許可関数
     123 *
     124 *  ARMv6から追加されたシステム状態を変更する命令を使った割込み禁止/許
     125 *  可のための関数.
     126 */
     127#if __TARGET_ARCH_ARM >= 6
     128
     129/*
     130 *  IRQの禁止
    147131 */
    148132Inline void
     
    153137
    154138/*
    155  *  IRQの許可
     139 *  IRQの許可
    156140 */
    157141Inline void
     
    162146
    163147/*
    164  *  FIQの禁止
     148 *  FIQの禁止
    165149 */
    166150Inline void
     
    171155
    172156/*
    173  *  FIQの許可
     157 *  FIQの許可
    174158 */
    175159Inline void
     
    180164
    181165/*
    182  *  FIQとIRQの禁止
     166 *  FIQとIRQの禁止
    183167 */
    184168Inline void
     
    189173
    190174/*
    191  *  FIQとIRQの許可
     175 *  FIQとIRQの許可
    192176 */
    193177Inline void
     
    200184
    201185/*
    202  *  CP15のIDレジスタ操作マクロ
    203  */
    204 
    205 /* メインIDレジスタ */
     186 *  CP15のIDレジスタ操作マクロ
     187 */
     188
     189/* メインIDレジスタ */
    206190#define CP15_READ_MIDR(reg)             Asm("mrc p15, 0, %0, c0, c0, 0":"=r"(reg))
    207191
    208 /* マルチプロセッサアフィニティレジスタ(ARMv6以降)*/
     192/* マルチプロセッサアフィニティレジスタ(ARMv6以降)*/
    209193#if __TARGET_ARCH_ARM >= 6
    210194#define CP15_READ_MPIDR(reg)    Asm("mrc p15, 0, %0, c0, c0, 5":"=r"(reg))
    211195#endif /* __TARGET_ARCH_ARM >= 6 */
    212196
    213 /* キャッシュタイプレジスタ */
     197/* キャッシュタイプレジスタ */
    214198#define CP15_READ_CTR(reg)              Asm("mrc p15, 0, %0, c0, c0, 1":"=r"(reg))
    215199
    216200#if __TARGET_ARCH_ARM == 7
    217 /* キャッシュレベルIDレジスタ(ARMv7) */
     201/* キャッシュレベルIDレジスタ(ARMv7) */
    218202#define CP15_READ_CLIDR(reg)    Asm("mrc p15, 1, %0, c0, c0, 1":"=r"(reg))
    219203
    220 /* キャッシュサイズ選択レジスタ(ARMv7)*/
     204/* キャッシュサイズ選択レジスタ(ARMv7)*/
    221205#define CP15_WRITE_CSSELR(reg)  Asm("mcr p15, 2, %0, c0, c0, 0"::"r"(reg))
    222206
    223 /* キャッシュサイズIDレジスタ(ARMv7)*/
     207/* キャッシュサイズIDレジスタ(ARMv7)*/
    224208#define CP15_READ_CCSIDR(reg)   Asm("mrc p15, 1, %0, c0, c0, 0":"=r"(reg))
    225209#endif /* __TARGET_ARCH_ARM == 7 */
    226210
    227211/*
    228  *  CP15のシステム制御レジスタ操作マクロ
    229  */
    230 
    231 /* システム制御レジスタ */
     212 *  CP15のシステム制御レジスタ操作マクロ
     213 */
     214
     215/* システム制御レジスタ */
    232216#define CP15_READ_SCTLR(reg)    Asm("mrc p15, 0, %0, c1, c0, 0":"=r"(reg))
    233217#define CP15_WRITE_SCTLR(reg)   Asm("mcr p15, 0, %0, c1, c0, 0"::"r"(reg))
    234218
    235 /* 補助制御レジスタ(機能はチップ依存)*/
     219/* 補助制御レジスタ(機能はチップ依存)*/
    236220#define CP15_READ_ACTLR(reg)    Asm("mrc p15, 0, %0, c1, c0, 1":"=r"(reg))
    237221#define CP15_WRITE_ACTLR(reg)   Asm("mcr p15, 0, %0, c1, c0, 1"::"r"(reg))
    238222
    239223/*
    240  *  CP15によるキャッシュ操作マクロ
    241  */
    242 
    243 /* 命令キャッシュå
    244 ¨ä½“の無効化 */
     224 *  CP15によるキャッシュ操作マクロ
     225 */
     226
     227/* 命令キャッシュ全体の無効化 */
    245228#define CP15_INVALIDATE_ICACHE() \
    246229                                                                Asm("mcr p15, 0, %0, c7, c5, 0"::"r"(0))
    247230
    248 /* 分岐予測å
    249 ¨ä½“の無効化 */
     231/* 分岐予測全体の無効化 */
    250232#define CP15_INVALIDATE_BP()    Asm("mcr p15, 0, %0, c7, c5, 6"::"r"(0))
    251233
    252 /* データキャッシュå
    253 ¨ä½“の無効化(ARMv6以前)*/
     234/* データキャッシュ全体の無効化(ARMv6以前)*/
    254235#if __TARGET_ARCH_ARM <= 6
    255236#define CP15_INVALIDATE_DCACHE() Asm("mcr p15, 0, %0, c7, c6, 0"::"r"(0))
    256237#endif /* __TARGET_ARCH_ARM <= 6 */
    257238
    258 /* 統合キャッシュå
    259 ¨ä½“の無効化(ARMv6以前)*/
     239/* 統合キャッシュ全体の無効化(ARMv6以前)*/
    260240#if __TARGET_ARCH_ARM <= 6
    261241#define CP15_INVALIDATE_UCACHE() Asm("mcr p15, 0, %0, c7, c7, 0"::"r"(0))
    262242#endif /* __TARGET_ARCH_ARM <= 6 */
    263243
    264 /* データキャッシュå
    265 ¨ä½“のクリーンと無効化(ARMv5のみ)*/
     244/* データキャッシュ全体のクリーンと無効化(ARMv5のみ)*/
    266245#if __TARGET_ARCH_ARM <= 5
    267246#define ARMV5_CLEAN_AND_INVALIDATE_DCACHE() \
     
    269248#endif /* __TARGET_ARCH_ARM <= 5 */
    270249
    271 /* データキャッシュå
    272 ¨ä½“のクリーンと無効化(ARMv6のみ)*/
     250/* データキャッシュ全体のクリーンと無効化(ARMv6のみ)*/
    273251#if __TARGET_ARCH_ARM == 6
    274252#define CP15_CLEAN_AND_INVALIDATE_DCACHE() \
     
    276254#endif /* __TARGET_ARCH_ARM == 6 */
    277255
    278 /* 統合キャッシュå
    279 ¨ä½“のクリーンと無効化(ARMv6のみ)*/
     256/* 統合キャッシュ全体のクリーンと無効化(ARMv6のみ)*/
    280257#if __TARGET_ARCH_ARM == 6
    281258#define CP15_CLEAN_AND_INVALIDATE_UCACHE() \
     
    283260#endif /* __TARGET_ARCH_ARM == 6 */
    284261
    285 /* データキャッシュのセット/ウェイ単位の無効化 */
     262/* データキャッシュのセット/ウェイ単位の無効化 */
    286263#define CP15_WRITE_DCISW(reg)   Asm("mcr p15, 0, %0, c7, c6, 2"::"r"(reg))
    287264
    288 /* データキャッシュのセット/ウェイ単位のクリーンと無効化 */
     265/* データキャッシュのセット/ウェイ単位のクリーンと無効化 */
    289266#define CP15_WRITE_DCCISW(reg)  Asm("mcr p15, 0, %0, c7, c14, 2"::"r"(reg))
    290267
    291268/*
    292  *  CP15のフォールト状æ
    293 ‹ï¼ã‚¢ãƒ‰ãƒ¬ã‚¹ã®æ“ä½œãƒžã‚¯ãƒ­
     269 *  CP15のフォールト状態/アドレスの操作マクロ
    294270 */
    295271#if __TARGET_ARCH_ARM >= 6
     
    304280
    305281/*
    306  *  CP15によるMMUの操作マクロ(VMSA)
    307  */
    308 
    309 /* 変換テーブルベース制御レジスタ(ARMv6以降)*/
     282 *  CP15によるMMUの操作マクロ(VMSA)
     283 */
     284
     285/* 変換テーブルベース制御レジスタ(ARMv6以降)*/
    310286#if __TARGET_ARCH_ARM >= 6
    311287#define CP15_WRITE_TTBCR(reg)   Asm("mcr p15, 0, %0, c2, c0, 2"::"r"(reg))
    312288#endif /* __TARGET_ARCH_ARM >= 6 */
    313289
    314 /* 変換テーブルベースレジスタ0 */
     290/* 変換テーブルベースレジスタ0 */
    315291#define CP15_READ_TTBR0(reg)    Asm("mrc p15, 0, %0, c2, c0, 0":"=r"(reg))
    316292#define CP15_WRITE_TTBR0(reg)   Asm("mcr p15, 0, %0, c2, c0, 0"::"r"(reg))
    317293
    318 /* ドメインアクセス制御レジスタ */
     294/* ドメインアクセス制御レジスタ */
    319295#define CP15_WRITE_DACR(reg)    Asm("mcr p15, 0, %0, c3, c0, 0":: "r"(reg))
    320296
    321 /* コンテキストIDレジスタ(ARMv6以降)*/
     297/* コンテキストIDレジスタ(ARMv6以降)*/
    322298#if __TARGET_ARCH_ARM >= 6
    323299#define CP15_WRITE_CONTEXTIDR(reg) Asm("mcr p15, 0, %0, c13, c0, 1" ::"r"(reg))
     
    325301
    326302/*
    327  *  CP15によるTLB操作マクロ(VMSA)
    328  */
    329 
    330 /* TLBå
    331 ¨ä½“の無効化 */
     303 *  CP15によるTLB操作マクロ(VMSA)
     304 */
     305
     306/* TLB全体の無効化 */
    332307#define CP15_INVALIDATE_TLB()   Asm("mcr p15, 0, %0, c8, c7, 0"::"r"(0))
    333308
    334309/*
    335  *  CP15のパフォーマンスモニタ操作マクロ(ARMv7のみ)
     310 *  CP15のパフォーマンスモニタ操作マクロ(ARMv7のみ)
    336311 */
    337312#if __TARGET_ARCH_ARM == 7
    338313
    339 /* パフォーマンスモニタ制御レジスタ */
     314/* パフォーマンスモニタ制御レジスタ */
    340315#define CP15_READ_PMCR(reg)             Asm("mrc p15, 0, %0, c9, c12, 0":"=r"(reg))
    341316#define CP15_WRITE_PMCR(reg)    Asm("mcr p15, 0, %0, c9, c12, 0"::"r"(reg))
    342317
    343 /* パフォーマンスモニタカウントイネーブルセットレジスタ */
     318/* パフォーマンスモニタカウントイネーブルセットレジスタ */
    344319#define CP15_READ_PMCNTENSET(reg)  Asm("mrc p15, 0, %0, c9, c12, 1":"=r"(reg))
    345320#define CP15_WRITE_PMCNTENSET(reg) Asm("mcr p15, 0, %0, c9, c12, 1"::"r"(reg))
    346321
    347 /* パフォーマンスモニタカウンタサイクルレジスタ */
     322/* パフォーマンスモニタカウンタサイクルレジスタ */
    348323#define CP15_READ_PMCCNTR(reg)  Asm("mrc p15, 0, %0, c9, c13, 0":"=r"(reg))
    349324#define CP15_WRITE_PMCCNTR(reg) Asm("mcr p15, 0, %0, c9, c13, 0"::"r"(reg))
     
    352327
    353328/*
    354  *  CP15によるメモリバリア操作マクロ
     329 *  CP15によるメモリバリア操作マクロ
    355330 */
    356331#define CP15_INST_SYNC_BARRIER() \
     
    362337
    363338/*
    364  *  メモリバリア
    365  *
    366  *  ARMv6とARMv7が持つ3つのメモリバリア機能を使用するための関数.メモリ
    367  *  バリアは,ARMv7では専用命令,ARMv6ではCP15への書込みで実現される.
    368  *  ARMv7のメモリバリア命令は,同期を取る範囲を指定できるが,以下の関数
    369  *  では最大範囲(システムå
    370 ¨ä½“,リード/ライトの両方)で同期を取る.
    371  *
    372  *  ARMv5以前では,メモリバリア機能は実è£
    373 ä¾å­˜ã§ã‚るため,それぞれ,
    374  *  DATA_MEMORY_BARRIER,DATA_SYNC_BARRIER,INST_SYNC_BARRIERを定義する
    375  *  ことによって,関数のå†
    376 å®¹ã‚’å
    377 ¥ã‚Œæ›ãˆã‚‰ã‚Œã‚‹ã‚ˆã†ã«ã—ている.
    378  */
    379 
    380 /*
    381  *  データメモリバリア
    382  *
    383  *  このバリアの前後で,メモリアクセスの順序がå
    384 ¥ã‚Œæ›ã‚ã‚‰ãªã„ようにする.
    385  *  マルチコア(厳密にはマルチマスタ)での使用を想定した命令.
     339 *  メモリバリア
     340 *
     341 *  ARMv6とARMv7が持つ3つのメモリバリア機能を使用するための関数.メモリ
     342 *  バリアは,ARMv7では専用命令,ARMv6ではCP15への書込みで実現される.
     343 *  ARMv7のメモリバリア命令は,同期を取る範囲を指定できるが,以下の関数
     344 *  では最大範囲(システム全体,リード/ライトの両方)で同期を取る.
     345 *
     346 *  ARMv5以前では,メモリバリア機能は実装依存であるため,それぞれ,
     347 *  DATA_MEMORY_BARRIER,DATA_SYNC_BARRIER,INST_SYNC_BARRIERを定義する
     348 *  ことによって,関数の内容を入れ換えられるようにしている.
     349 */
     350
     351/*
     352 *  データメモリバリア
     353 *
     354 *  このバリアの前後で,メモリアクセスの順序が入れ換わらないようにする.
     355 *  マルチコア(厳密にはマルチマスタ)での使用を想定した命令.
    386356 */
    387357Inline void
     
    398368
    399369/*
    400  *  データ同期バリア
    401  *
    402  *  å
    403 ˆè¡Œã™ã‚‹ãƒ¡ãƒ¢ãƒªã‚¢ã‚¯ã‚»ã‚¹ãŒå®Œäº†ã™ã‚‹ã®ã‚’å¾
    404 ã¤ï¼Žãƒ¡ãƒ¢ãƒªã‚¢ã‚¯ã‚»ã‚¹ãŒå‰¯ä½œç”¨ã‚’
    405  *  持つ時に,その副作用が起こるのをå¾
    406 ã¤ãŸã‚ã®ä½¿ç”¨ã‚’想定した命令.
     370 *  データ同期バリア
     371 *
     372 *  先行するメモリアクセスが完了するのを待つ.メモリアクセスが副作用を
     373 *  持つ時に,その副作用が起こるのを待つための使用を想定した命令.
    407374 */
    408375Inline void
     
    419386
    420387/*
    421  *  命令同期バリア
    422  *
    423  *  プログラムが書き換えられた(または,システム状æ
    424 ‹ã®å¤‰åŒ–により実行す
    425  *  べきプログラムが変わった)時に,パイプラインをフラッシュするなど,
    426  *  新しいプログラムを読み込むようにする.ARMv6では,プリフェッチフラッ
    427  *  シュと呼ばれている.
     388 *  命令同期バリア
     389 *
     390 *  プログラムが書き換えられた(または,システム状態の変化により実行す
     391 *  べきプログラムが変わった)時に,パイプラインをフラッシュするなど,
     392 *  新しいプログラムを読み込むようにする.ARMv6では,プリフェッチフラッ
     393 *  シュと呼ばれている.
    428394 */
    429395Inline void
     
    440406
    441407/*
    442  *  CP15のセキュリティ拡張レジスタ操作マクロ(ARMv7のみ)
     408 *  CP15のセキュリティ拡張レジスタ操作マクロ(ARMv7のみ)
    443409 */
    444410#if __TARGET_ARCH_ARM == 7
    445411
    446 /* ベクタベースアドレスレジスタ */
     412/* ベクタベースアドレスレジスタ */
    447413#define CP15_READ_VBAR(reg)             Asm("mrc p15, 0, %0, c12, c0, 0":"=r"(reg))
    448414#define CP15_WRITE_VBAR(reg)    Asm("mcr p15, 0, %0, c12, c0, 0"::"r"(reg))
Note: See TracChangeset for help on using the changeset viewer.