]> begriffs open source - cmsis/blob - main/Core/group__intrinsic__CPU__gr.html
Update documentation for branch main
[cmsis] / main / Core / group__intrinsic__CPU__gr.html
1 <!-- HTML header for doxygen 1.9.6-->
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
4 <head>
5 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6 <meta http-equiv="X-UA-Compatible" content="IE=11"/>
7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
8 <title>CMSIS-Core (Cortex-M): Intrinsic Functions for CPU Instructions</title>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 <script type="text/javascript" src="jquery.js"></script>
11 <script type="text/javascript" src="dynsections.js"></script>
12 <script type="text/javascript" src="tabs.js"></script>
13 <script type="text/javascript" src="footer.js"></script>
14 <script type="text/javascript" src="navtree.js"></script>
15 <link href="navtree.css" rel="stylesheet" type="text/css"/>
16 <script type="text/javascript" src="resize.js"></script>
17 <script type="text/javascript" src="navtreedata.js"></script>
18 <script type="text/javascript" src="navtree.js"></script>
19 <link href="search/search.css" rel="stylesheet" type="text/css"/>
20 <script type="text/javascript" src="search/searchdata.js"></script>
21 <script type="text/javascript" src="search/search.js"></script>
22 <script type="text/javascript">
23 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
24   $(document).ready(function() { init_search(); });
25 /* @license-end */
26 </script>
27 <script type="text/javascript" src="darkmode_toggle.js"></script>
28 <link href="extra_stylesheet.css" rel="stylesheet" type="text/css"/>
29 <link href="extra_navtree.css" rel="stylesheet" type="text/css"/>
30 <link href="extra_search.css" rel="stylesheet" type="text/css"/>
31 <link href="extra_tabs.css" rel="stylesheet" type="text/css"/>
32 <link href="version.css" rel="stylesheet" type="text/css"/>
33 <script type="text/javascript" src="../../version.js"></script>
34 </head>
35 <body>
36 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
37 <div id="titlearea">
38 <table cellspacing="0" cellpadding="0">
39  <tbody>
40  <tr style="height: 55px;">
41   <td id="projectlogo" style="padding: 1.5em;"><img alt="Logo" src="cmsis_logo_white_small.png"/></td>
42   <td style="padding-left: 1em; padding-bottom: 1em;padding-top: 1em;">
43    <div id="projectname">CMSIS-Core (Cortex-M)
44    &#160;<span id="projectnumber"><script type="text/javascript">
45      <!--
46      writeHeader.call(this);
47      writeVersionDropdown.call(this, "CMSIS-Core (Cortex-M)");
48      //-->
49     </script>
50    </span>
51    </div>
52    <div id="projectbrief">CMSIS-Core support for Cortex-M processor-based devices</div>
53   </td>
54    <td>        <div id="MSearchBox" class="MSearchBoxInactive">
55         <span class="left">
56           <span id="MSearchSelect"                onmouseover="return searchBox.OnSearchSelectShow()"                onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
57           <input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
58                onfocus="searchBox.OnSearchFieldFocus(true)" 
59                onblur="searchBox.OnSearchFieldFocus(false)" 
60                onkeyup="searchBox.OnSearchFieldChange(event)"/>
61           </span><span class="right">
62             <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
63           </span>
64         </div>
65 </td>
66   <!--END !PROJECT_NAME-->
67  </tr>
68  </tbody>
69 </table>
70 </div>
71 <!-- end header part -->
72 <div id="CMSISnav" class="tabs1">
73   <ul class="tablist">
74     <script type="text/javascript">
75       writeComponentTabs.call(this);
76     </script>
77   </ul>
78 </div>
79 <script type="text/javascript">
80   writeSubComponentTabs.call(this);
81 </script>
82 <!-- Generated by Doxygen 1.9.6 -->
83 <script type="text/javascript">
84 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
85 var searchBox = new SearchBox("searchBox", "search/",'.html');
86 /* @license-end */
87 </script>
88 </div><!-- top -->
89 <div id="side-nav" class="ui-resizable side-nav-resizable">
90   <div id="nav-tree">
91     <div id="nav-tree-contents">
92       <div id="nav-sync" class="sync"></div>
93     </div>
94   </div>
95   <div id="splitbar" style="-moz-user-select:none;" 
96        class="ui-resizable-handle">
97   </div>
98 </div>
99 <script type="text/javascript">
100 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
101 $(document).ready(function(){initNavTree('group__intrinsic__CPU__gr.html',''); initResizable(); });
102 /* @license-end */
103 </script>
104 <div id="doc-content">
105 <!-- window showing the filter options -->
106 <div id="MSearchSelectWindow"
107      onmouseover="return searchBox.OnSearchSelectShow()"
108      onmouseout="return searchBox.OnSearchSelectHide()"
109      onkeydown="return searchBox.OnSearchSelectKey(event)">
110 </div>
111
112 <!-- iframe showing the search results (closed by default) -->
113 <div id="MSearchResultsWindow">
114 <div id="MSearchResults">
115 <div class="SRPage">
116 <div id="SRIndex">
117 <div id="SRResults"></div>
118 <div class="SRStatus" id="Loading">Loading...</div>
119 <div class="SRStatus" id="Searching">Searching...</div>
120 <div class="SRStatus" id="NoMatches">No Matches</div>
121 </div>
122 </div>
123 </div>
124 </div>
125
126 <div class="header">
127   <div class="summary">
128 <a href="#func-members">Functions</a>  </div>
129   <div class="headertitle"><div class="title">Intrinsic Functions for CPU Instructions</div></div>
130 </div><!--header-->
131 <div class="contents">
132
133 <p>Functions that generate specific Cortex-M CPU Instructions.  
134 <a href="#details">More...</a></p>
135 <table class="memberdecls">
136 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
137 Functions</h2></td></tr>
138 <tr class="memitem:ga92f5621626711931da71eaa8bf301af7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga92f5621626711931da71eaa8bf301af7">__BKPT</a> (uint8_t value)</td></tr>
139 <tr class="memdesc:ga92f5621626711931da71eaa8bf301af7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set Breakpoint.  <br /></td></tr>
140 <tr class="separator:ga92f5621626711931da71eaa8bf301af7"><td class="memSeparator" colspan="2">&#160;</td></tr>
141 <tr class="memitem:ga354c5ac8870cc3dfb823367af9c4b412"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga354c5ac8870cc3dfb823367af9c4b412">__CLREX</a> (void)</td></tr>
142 <tr class="memdesc:ga354c5ac8870cc3dfb823367af9c4b412"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove the exclusive lock [not for Cortex-M0, Cortex-M0+, or SC000].  <br /></td></tr>
143 <tr class="separator:ga354c5ac8870cc3dfb823367af9c4b412"><td class="memSeparator" colspan="2">&#160;</td></tr>
144 <tr class="memitem:ga90884c591ac5d73d6069334eba9d6c02"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga90884c591ac5d73d6069334eba9d6c02">__CLZ</a> (uint32_t value)</td></tr>
145 <tr class="memdesc:ga90884c591ac5d73d6069334eba9d6c02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Count leading zeros.  <br /></td></tr>
146 <tr class="separator:ga90884c591ac5d73d6069334eba9d6c02"><td class="memSeparator" colspan="2">&#160;</td></tr>
147 <tr class="memitem:gab1c9b393641dc2d397b3408fdbe72b96"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gab1c9b393641dc2d397b3408fdbe72b96">__DMB</a> (void)</td></tr>
148 <tr class="memdesc:gab1c9b393641dc2d397b3408fdbe72b96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data Memory Barrier.  <br /></td></tr>
149 <tr class="separator:gab1c9b393641dc2d397b3408fdbe72b96"><td class="memSeparator" colspan="2">&#160;</td></tr>
150 <tr class="memitem:gacb2a8ca6eae1ba4b31161578b720c199"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gacb2a8ca6eae1ba4b31161578b720c199">__DSB</a> (void)</td></tr>
151 <tr class="memdesc:gacb2a8ca6eae1ba4b31161578b720c199"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data Synchronization Barrier.  <br /></td></tr>
152 <tr class="separator:gacb2a8ca6eae1ba4b31161578b720c199"><td class="memSeparator" colspan="2">&#160;</td></tr>
153 <tr class="memitem:ga93c09b4709394d81977300d5f84950e5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga93c09b4709394d81977300d5f84950e5">__ISB</a> (void)</td></tr>
154 <tr class="memdesc:ga93c09b4709394d81977300d5f84950e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Instruction Synchronization Barrier.  <br /></td></tr>
155 <tr class="separator:ga93c09b4709394d81977300d5f84950e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
156 <tr class="memitem:ga22a24f416b65c2f5a82d9f1162d9394d"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga22a24f416b65c2f5a82d9f1162d9394d">__LDA</a> (volatile uint32_t *ptr)</td></tr>
157 <tr class="memdesc:ga22a24f416b65c2f5a82d9f1162d9394d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load-Acquire (32 bit)  <br /></td></tr>
158 <tr class="separator:ga22a24f416b65c2f5a82d9f1162d9394d"><td class="memSeparator" colspan="2">&#160;</td></tr>
159 <tr class="memitem:ga263b9b2d9c06d731022873acddb6aa3f"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga263b9b2d9c06d731022873acddb6aa3f">__LDAB</a> (volatile uint8_t *ptr)</td></tr>
160 <tr class="memdesc:ga263b9b2d9c06d731022873acddb6aa3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load-Acquire (8 bit)  <br /></td></tr>
161 <tr class="separator:ga263b9b2d9c06d731022873acddb6aa3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
162 <tr class="memitem:ga3c74d923529f664eda099d1b2668b3c1"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga3c74d923529f664eda099d1b2668b3c1">__LDAEX</a> (volatile uint32_t *ptr)</td></tr>
163 <tr class="memdesc:ga3c74d923529f664eda099d1b2668b3c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load-Acquire Exclusive (32 bit)  <br /></td></tr>
164 <tr class="separator:ga3c74d923529f664eda099d1b2668b3c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
165 <tr class="memitem:ga513beada40cdd7123281f22482603bcc"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga513beada40cdd7123281f22482603bcc">__LDAEXB</a> (volatile uint32_t *ptr)</td></tr>
166 <tr class="memdesc:ga513beada40cdd7123281f22482603bcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load-Acquire Exclusive (8 bit)  <br /></td></tr>
167 <tr class="separator:ga513beada40cdd7123281f22482603bcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
168 <tr class="memitem:ga426b61640fc68f21b21ae4dc2726f3b4"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga426b61640fc68f21b21ae4dc2726f3b4">__LDAEXH</a> (volatile uint32_t *ptr)</td></tr>
169 <tr class="memdesc:ga426b61640fc68f21b21ae4dc2726f3b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load-Acquire Exclusive (16 bit)  <br /></td></tr>
170 <tr class="separator:ga426b61640fc68f21b21ae4dc2726f3b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
171 <tr class="memitem:ga5810ac0b87a37e321c2f909cd3860499"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga5810ac0b87a37e321c2f909cd3860499">__LDAH</a> (volatile uint16_t *ptr)</td></tr>
172 <tr class="memdesc:ga5810ac0b87a37e321c2f909cd3860499"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load-Acquire (16 bit)  <br /></td></tr>
173 <tr class="separator:ga5810ac0b87a37e321c2f909cd3860499"><td class="memSeparator" colspan="2">&#160;</td></tr>
174 <tr class="memitem:ga9464d75db32846aa8295c3c3adfacb41"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga9464d75db32846aa8295c3c3adfacb41">__LDRBT</a> (uint8_t ptr)</td></tr>
175 <tr class="memdesc:ga9464d75db32846aa8295c3c3adfacb41"><td class="mdescLeft">&#160;</td><td class="mdescRight">LDRT Unprivileged (8 bit)  <br /></td></tr>
176 <tr class="separator:ga9464d75db32846aa8295c3c3adfacb41"><td class="memSeparator" colspan="2">&#160;</td></tr>
177 <tr class="memitem:ga9e3ac13d8dcf4331176b624cf6234a7e"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga9e3ac13d8dcf4331176b624cf6234a7e">__LDREXB</a> (volatile uint8_t *addr)</td></tr>
178 <tr class="memdesc:ga9e3ac13d8dcf4331176b624cf6234a7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">LDR Exclusive (8 bit) [not for Cortex-M0, Cortex-M0+, or SC000].  <br /></td></tr>
179 <tr class="separator:ga9e3ac13d8dcf4331176b624cf6234a7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
180 <tr class="memitem:ga9feffc093d6f68b120d592a7a0d45a15"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga9feffc093d6f68b120d592a7a0d45a15">__LDREXH</a> (volatile uint16_t *addr)</td></tr>
181 <tr class="memdesc:ga9feffc093d6f68b120d592a7a0d45a15"><td class="mdescLeft">&#160;</td><td class="mdescRight">LDR Exclusive (16 bit) [not for Cortex-M0, Cortex-M0+, or SC000].  <br /></td></tr>
182 <tr class="separator:ga9feffc093d6f68b120d592a7a0d45a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
183 <tr class="memitem:gabd78840a0f2464905b7cec791ebc6a4c"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gabd78840a0f2464905b7cec791ebc6a4c">__LDREXW</a> (volatile uint32_t *addr)</td></tr>
184 <tr class="memdesc:gabd78840a0f2464905b7cec791ebc6a4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">LDR Exclusive (32 bit) [not for Cortex-M0, Cortex-M0+, or SC000].  <br /></td></tr>
185 <tr class="separator:gabd78840a0f2464905b7cec791ebc6a4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
186 <tr class="memitem:gaa762b8bc5634ce38cb14d62a6b2aee32"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gaa762b8bc5634ce38cb14d62a6b2aee32">__LDRHT</a> (uint16_t ptr)</td></tr>
187 <tr class="memdesc:gaa762b8bc5634ce38cb14d62a6b2aee32"><td class="mdescLeft">&#160;</td><td class="mdescRight">LDRT Unprivileged (16 bit)  <br /></td></tr>
188 <tr class="separator:gaa762b8bc5634ce38cb14d62a6b2aee32"><td class="memSeparator" colspan="2">&#160;</td></tr>
189 <tr class="memitem:ga616504f5da979ba8a073d428d6e8d5c7"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga616504f5da979ba8a073d428d6e8d5c7">__LDRT</a> (uint32_t ptr)</td></tr>
190 <tr class="memdesc:ga616504f5da979ba8a073d428d6e8d5c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">LDRT Unprivileged (32 bit)  <br /></td></tr>
191 <tr class="separator:ga616504f5da979ba8a073d428d6e8d5c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
192 <tr class="memitem:gac71fad9f0a91980fecafcb450ee0a63e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gac71fad9f0a91980fecafcb450ee0a63e">__NOP</a> (void)</td></tr>
193 <tr class="memdesc:gac71fad9f0a91980fecafcb450ee0a63e"><td class="mdescLeft">&#160;</td><td class="mdescRight">No Operation.  <br /></td></tr>
194 <tr class="separator:gac71fad9f0a91980fecafcb450ee0a63e"><td class="memSeparator" colspan="2">&#160;</td></tr>
195 <tr class="memitem:gad6f9f297f6b91a995ee199fbc796b863"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gad6f9f297f6b91a995ee199fbc796b863">__RBIT</a> (uint32_t value)</td></tr>
196 <tr class="memdesc:gad6f9f297f6b91a995ee199fbc796b863"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reverse bit order of value.  <br /></td></tr>
197 <tr class="separator:gad6f9f297f6b91a995ee199fbc796b863"><td class="memSeparator" colspan="2">&#160;</td></tr>
198 <tr class="memitem:ga4717abc17af5ba29b1e4c055e0a0d9b8"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga4717abc17af5ba29b1e4c055e0a0d9b8">__REV</a> (uint32_t value)</td></tr>
199 <tr class="memdesc:ga4717abc17af5ba29b1e4c055e0a0d9b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reverse byte order (32 bit)  <br /></td></tr>
200 <tr class="separator:ga4717abc17af5ba29b1e4c055e0a0d9b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
201 <tr class="memitem:gaeef6f853b6df3a365c838ee5b49a7a26"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gaeef6f853b6df3a365c838ee5b49a7a26">__REV16</a> (uint32_t value)</td></tr>
202 <tr class="memdesc:gaeef6f853b6df3a365c838ee5b49a7a26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reverse byte order (16 bit)  <br /></td></tr>
203 <tr class="separator:gaeef6f853b6df3a365c838ee5b49a7a26"><td class="memSeparator" colspan="2">&#160;</td></tr>
204 <tr class="memitem:ga211618c03a0bf3264a7b22ad626d4f0a"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga211618c03a0bf3264a7b22ad626d4f0a">__REVSH</a> (int16_t value)</td></tr>
205 <tr class="memdesc:ga211618c03a0bf3264a7b22ad626d4f0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reverse byte order (16 bit)  <br /></td></tr>
206 <tr class="separator:ga211618c03a0bf3264a7b22ad626d4f0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
207 <tr class="memitem:gaf66beb577bb9d90424c3d1d7f684c024"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gaf66beb577bb9d90424c3d1d7f684c024">__ROR</a> (uint32_t value, uint32_t shift)</td></tr>
208 <tr class="memdesc:gaf66beb577bb9d90424c3d1d7f684c024"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a value right by a number of bits.  <br /></td></tr>
209 <tr class="separator:gaf66beb577bb9d90424c3d1d7f684c024"><td class="memSeparator" colspan="2">&#160;</td></tr>
210 <tr class="memitem:gac09134f1bf9c49db07282001afcc9380"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gac09134f1bf9c49db07282001afcc9380">__RRX</a> (uint32_t value)</td></tr>
211 <tr class="memdesc:gac09134f1bf9c49db07282001afcc9380"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate Right with Extend (32 bit)  <br /></td></tr>
212 <tr class="separator:gac09134f1bf9c49db07282001afcc9380"><td class="memSeparator" colspan="2">&#160;</td></tr>
213 <tr class="memitem:ga3c34da7eb16496ae2668a5b95fa441e7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga3c34da7eb16496ae2668a5b95fa441e7">__SEV</a> (void)</td></tr>
214 <tr class="memdesc:ga3c34da7eb16496ae2668a5b95fa441e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send Event.  <br /></td></tr>
215 <tr class="separator:ga3c34da7eb16496ae2668a5b95fa441e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
216 <tr class="memitem:ga8cfeb5ffe0e49ec6b29dafdde92e5118"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga8cfeb5ffe0e49ec6b29dafdde92e5118">__SSAT</a> (int32_t value, uint32_t sat)</td></tr>
217 <tr class="memdesc:ga8cfeb5ffe0e49ec6b29dafdde92e5118"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed Saturate.  <br /></td></tr>
218 <tr class="separator:ga8cfeb5ffe0e49ec6b29dafdde92e5118"><td class="memSeparator" colspan="2">&#160;</td></tr>
219 <tr class="memitem:ga5429d7083fb8d30c43cecd3a861e1672"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga5429d7083fb8d30c43cecd3a861e1672">__STL</a> (uint32_t value, volatile uint32_t *ptr)</td></tr>
220 <tr class="memdesc:ga5429d7083fb8d30c43cecd3a861e1672"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store-Release (32 bit)  <br /></td></tr>
221 <tr class="separator:ga5429d7083fb8d30c43cecd3a861e1672"><td class="memSeparator" colspan="2">&#160;</td></tr>
222 <tr class="memitem:gace025d3a1f85d2ab9bae7288838d6bc8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gace025d3a1f85d2ab9bae7288838d6bc8">__STLB</a> (uint8_t value, volatile uint8_t *ptr)</td></tr>
223 <tr class="memdesc:gace025d3a1f85d2ab9bae7288838d6bc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store-Release (8 bit)  <br /></td></tr>
224 <tr class="separator:gace025d3a1f85d2ab9bae7288838d6bc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
225 <tr class="memitem:gae7f955b91595cfd82a03e4b437c59afe"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gae7f955b91595cfd82a03e4b437c59afe">__STLEX</a> (uint32_t value, volatile uint32_t *ptr)</td></tr>
226 <tr class="memdesc:gae7f955b91595cfd82a03e4b437c59afe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store-Release Exclusive (32 bit)  <br /></td></tr>
227 <tr class="separator:gae7f955b91595cfd82a03e4b437c59afe"><td class="memSeparator" colspan="2">&#160;</td></tr>
228 <tr class="memitem:ga590724a32a229978536fbbbd6cc82536"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga590724a32a229978536fbbbd6cc82536">__STLEXB</a> (uint8_t value, volatile uint8_t *ptr)</td></tr>
229 <tr class="memdesc:ga590724a32a229978536fbbbd6cc82536"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store-Release Exclusive (8 bit)  <br /></td></tr>
230 <tr class="separator:ga590724a32a229978536fbbbd6cc82536"><td class="memSeparator" colspan="2">&#160;</td></tr>
231 <tr class="memitem:ga047c3bebca3d0ae348ab8370a046301d"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga047c3bebca3d0ae348ab8370a046301d">__STLEXH</a> (uint16_t value, volatile uint16_t *ptr)</td></tr>
232 <tr class="memdesc:ga047c3bebca3d0ae348ab8370a046301d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store-Release Exclusive (16 bit)  <br /></td></tr>
233 <tr class="separator:ga047c3bebca3d0ae348ab8370a046301d"><td class="memSeparator" colspan="2">&#160;</td></tr>
234 <tr class="memitem:ga25691650de536f9b248b15f6dc4a3e70"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga25691650de536f9b248b15f6dc4a3e70">__STLH</a> (uint16_t value, volatile uint16_t *ptr)</td></tr>
235 <tr class="memdesc:ga25691650de536f9b248b15f6dc4a3e70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store-Release (16 bit)  <br /></td></tr>
236 <tr class="separator:ga25691650de536f9b248b15f6dc4a3e70"><td class="memSeparator" colspan="2">&#160;</td></tr>
237 <tr class="memitem:gad41aa59c92c0a165b7f98428d3320cd5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gad41aa59c92c0a165b7f98428d3320cd5">__STRBT</a> (uint8_t value, uint8_t ptr)</td></tr>
238 <tr class="memdesc:gad41aa59c92c0a165b7f98428d3320cd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">STRT Unprivileged (8 bit)  <br /></td></tr>
239 <tr class="separator:gad41aa59c92c0a165b7f98428d3320cd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
240 <tr class="memitem:gaab6482d1f59f59e2b6b7efc1af391c99"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gaab6482d1f59f59e2b6b7efc1af391c99">__STREXB</a> (uint8_t value, volatile uint8_t *addr)</td></tr>
241 <tr class="memdesc:gaab6482d1f59f59e2b6b7efc1af391c99"><td class="mdescLeft">&#160;</td><td class="mdescRight">STR Exclusive (8 bit) [not for Cortex-M0, Cortex-M0+, or SC000].  <br /></td></tr>
242 <tr class="separator:gaab6482d1f59f59e2b6b7efc1af391c99"><td class="memSeparator" colspan="2">&#160;</td></tr>
243 <tr class="memitem:ga0a354bdf71caa52f081a4a54e84c8d2a"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga0a354bdf71caa52f081a4a54e84c8d2a">__STREXH</a> (uint16_t value, volatile uint16_t *addr)</td></tr>
244 <tr class="memdesc:ga0a354bdf71caa52f081a4a54e84c8d2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">STR Exclusive (16 bit) [not for Cortex-M0, Cortex-M0+, or SC000].  <br /></td></tr>
245 <tr class="separator:ga0a354bdf71caa52f081a4a54e84c8d2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
246 <tr class="memitem:ga335deaaa7991490e1450cb7d1e4c5197"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga335deaaa7991490e1450cb7d1e4c5197">__STREXW</a> (uint32_t value, volatile uint32_t *addr)</td></tr>
247 <tr class="memdesc:ga335deaaa7991490e1450cb7d1e4c5197"><td class="mdescLeft">&#160;</td><td class="mdescRight">STR Exclusive (32 bit) [not for Cortex-M0, Cortex-M0+, or SC000].  <br /></td></tr>
248 <tr class="separator:ga335deaaa7991490e1450cb7d1e4c5197"><td class="memSeparator" colspan="2">&#160;</td></tr>
249 <tr class="memitem:ga2b5d93b8e461755b1072a03df3f1722e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga2b5d93b8e461755b1072a03df3f1722e">__STRHT</a> (uint16_t value, uint16_t ptr)</td></tr>
250 <tr class="memdesc:ga2b5d93b8e461755b1072a03df3f1722e"><td class="mdescLeft">&#160;</td><td class="mdescRight">STRT Unprivileged (16 bit)  <br /></td></tr>
251 <tr class="separator:ga2b5d93b8e461755b1072a03df3f1722e"><td class="memSeparator" colspan="2">&#160;</td></tr>
252 <tr class="memitem:ga625bc4ac0b1d50de9bcd13d9f050030e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga625bc4ac0b1d50de9bcd13d9f050030e">__STRT</a> (uint32_t value, uint32_t ptr)</td></tr>
253 <tr class="memdesc:ga625bc4ac0b1d50de9bcd13d9f050030e"><td class="mdescLeft">&#160;</td><td class="mdescRight">STRT Unprivileged (32 bit)  <br /></td></tr>
254 <tr class="separator:ga625bc4ac0b1d50de9bcd13d9f050030e"><td class="memSeparator" colspan="2">&#160;</td></tr>
255 <tr class="memitem:ga9ba87371aebd17dd6244ed3458b29b5d"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga9ba87371aebd17dd6244ed3458b29b5d">__USAT</a> (int32_t value, uint32_t sat)</td></tr>
256 <tr class="memdesc:ga9ba87371aebd17dd6244ed3458b29b5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned Saturate.  <br /></td></tr>
257 <tr class="separator:ga9ba87371aebd17dd6244ed3458b29b5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
258 <tr class="memitem:gad3efec76c3bfa2b8528ded530386c563"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gad3efec76c3bfa2b8528ded530386c563">__WFE</a> (void)</td></tr>
259 <tr class="memdesc:gad3efec76c3bfa2b8528ded530386c563"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait For Event.  <br /></td></tr>
260 <tr class="separator:gad3efec76c3bfa2b8528ded530386c563"><td class="memSeparator" colspan="2">&#160;</td></tr>
261 <tr class="memitem:gaed91dfbf3d7d7b7fba8d912fcbeaad88"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gaed91dfbf3d7d7b7fba8d912fcbeaad88">__WFI</a> (void)</td></tr>
262 <tr class="memdesc:gaed91dfbf3d7d7b7fba8d912fcbeaad88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait For Interrupt.  <br /></td></tr>
263 <tr class="separator:gaed91dfbf3d7d7b7fba8d912fcbeaad88"><td class="memSeparator" colspan="2">&#160;</td></tr>
264 </table>
265 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
266 <p>Functions that generate specific Cortex-M CPU Instructions. </p>
267 <p>The following functions generate specific Cortex-M instructions that cannot be directly accessed by the C/C++ Compiler. Refer to the <a class="el" href="index.html#ref_man_sec">Cortex-M Generic User Guides</a> for detailed information about these Cortex-M instructions.</p>
268 <dl class="section note"><dt>Note</dt><dd>When using the <b>Arm Compiler Version 5 Toolchain</b> the following <a class="el" href="group__intrinsic__CPU__gr.html">Intrinsic Functions for CPU Instructions</a> are implemented using the Embedded Assembler. As the Embedded Assembler may cause side effects (Refer to <b>Arm Compiler v5.xx User Guide - Using the Inline and Embedded Assemblers of the Arm Compiler</b> for more information) it is possible to disable the following intrinsic functions and therefore the usage of the Embedded Assembler with the <b><em>define __NO_EMBEDDED_ASM</em></b>:<ul>
269 <li><a class="el" href="group__intrinsic__CPU__gr.html#gaeef6f853b6df3a365c838ee5b49a7a26">__REV16</a></li>
270 <li><a class="el" href="group__intrinsic__CPU__gr.html#ga211618c03a0bf3264a7b22ad626d4f0a">__REVSH</a></li>
271 <li><a class="el" href="group__intrinsic__CPU__gr.html#gac09134f1bf9c49db07282001afcc9380">__RRX</a> </li>
272 </ul>
273 </dd></dl>
274 <h2 class="groupheader">Function Documentation</h2>
275 <a id="ga92f5621626711931da71eaa8bf301af7" name="ga92f5621626711931da71eaa8bf301af7"></a>
276 <h2 class="memtitle"><span class="permalink"><a href="#ga92f5621626711931da71eaa8bf301af7">&#9670;&#160;</a></span>__BKPT()</h2>
277
278 <div class="memitem">
279 <div class="memproto">
280       <table class="memname">
281         <tr>
282           <td class="memname">void __BKPT </td>
283           <td>(</td>
284           <td class="paramtype">uint8_t&#160;</td>
285           <td class="paramname"><em>value</em></td><td>)</td>
286           <td></td>
287         </tr>
288       </table>
289 </div><div class="memdoc">
290
291 <p>Set Breakpoint. </p>
292 <p>This function causes the processor to enter Debug state. Debug tools can use this to investigate system state when the instruction at a particular address is reached.</p>
293 <dl class="params"><dt>Parameters</dt><dd>
294   <table class="params">
295     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>is ignored by the processor. If required, a debugger can use it to obtain additional information about the breakpoint. </td></tr>
296   </table>
297   </dd>
298 </dl>
299
300 </div>
301 </div>
302 <a id="ga354c5ac8870cc3dfb823367af9c4b412" name="ga354c5ac8870cc3dfb823367af9c4b412"></a>
303 <h2 class="memtitle"><span class="permalink"><a href="#ga354c5ac8870cc3dfb823367af9c4b412">&#9670;&#160;</a></span>__CLREX()</h2>
304
305 <div class="memitem">
306 <div class="memproto">
307       <table class="memname">
308         <tr>
309           <td class="memname">void __CLREX </td>
310           <td>(</td>
311           <td class="paramtype">void&#160;</td>
312           <td class="paramname"></td><td>)</td>
313           <td></td>
314         </tr>
315       </table>
316 </div><div class="memdoc">
317
318 <p>Remove the exclusive lock [not for Cortex-M0, Cortex-M0+, or SC000]. </p>
319 <p>This function removes the exclusive lock which is created by LDREX [not for Cortex-M0, Cortex-M0+, or SC000]. </p>
320
321 </div>
322 </div>
323 <a id="ga90884c591ac5d73d6069334eba9d6c02" name="ga90884c591ac5d73d6069334eba9d6c02"></a>
324 <h2 class="memtitle"><span class="permalink"><a href="#ga90884c591ac5d73d6069334eba9d6c02">&#9670;&#160;</a></span>__CLZ()</h2>
325
326 <div class="memitem">
327 <div class="memproto">
328       <table class="memname">
329         <tr>
330           <td class="memname">uint8_t __CLZ </td>
331           <td>(</td>
332           <td class="paramtype">uint32_t&#160;</td>
333           <td class="paramname"><em>value</em></td><td>)</td>
334           <td></td>
335         </tr>
336       </table>
337 </div><div class="memdoc">
338
339 <p>Count leading zeros. </p>
340 <p>This function counts the number of leading zeros of a data value.</p>
341 <p>On Armv6-M (Cortex-M0, Cortex-M0+, and SC000) this function is not available as a core instruction instruction and thus __CLZ is implemented in software.</p>
342 <dl class="params"><dt>Parameters</dt><dd>
343   <table class="params">
344     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to count the leading zeros </td></tr>
345   </table>
346   </dd>
347 </dl>
348 <dl class="section return"><dt>Returns</dt><dd>number of leading zeros in value </dd></dl>
349
350 </div>
351 </div>
352 <a id="gab1c9b393641dc2d397b3408fdbe72b96" name="gab1c9b393641dc2d397b3408fdbe72b96"></a>
353 <h2 class="memtitle"><span class="permalink"><a href="#gab1c9b393641dc2d397b3408fdbe72b96">&#9670;&#160;</a></span>__DMB()</h2>
354
355 <div class="memitem">
356 <div class="memproto">
357       <table class="memname">
358         <tr>
359           <td class="memname">void __DMB </td>
360           <td>(</td>
361           <td class="paramtype">void&#160;</td>
362           <td class="paramname"></td><td>)</td>
363           <td></td>
364         </tr>
365       </table>
366 </div><div class="memdoc">
367
368 <p>Data Memory Barrier. </p>
369 <p>This function ensures the apparent order of the explicit memory operations before and after the instruction, without ensuring their completion. </p>
370
371 </div>
372 </div>
373 <a id="gacb2a8ca6eae1ba4b31161578b720c199" name="gacb2a8ca6eae1ba4b31161578b720c199"></a>
374 <h2 class="memtitle"><span class="permalink"><a href="#gacb2a8ca6eae1ba4b31161578b720c199">&#9670;&#160;</a></span>__DSB()</h2>
375
376 <div class="memitem">
377 <div class="memproto">
378       <table class="memname">
379         <tr>
380           <td class="memname">void __DSB </td>
381           <td>(</td>
382           <td class="paramtype">void&#160;</td>
383           <td class="paramname"></td><td>)</td>
384           <td></td>
385         </tr>
386       </table>
387 </div><div class="memdoc">
388
389 <p>Data Synchronization Barrier. </p>
390 <p>This function acts as a special kind of Data Memory Barrier. It completes when all explicit memory accesses before this instruction complete. </p>
391
392 </div>
393 </div>
394 <a id="ga93c09b4709394d81977300d5f84950e5" name="ga93c09b4709394d81977300d5f84950e5"></a>
395 <h2 class="memtitle"><span class="permalink"><a href="#ga93c09b4709394d81977300d5f84950e5">&#9670;&#160;</a></span>__ISB()</h2>
396
397 <div class="memitem">
398 <div class="memproto">
399       <table class="memname">
400         <tr>
401           <td class="memname">void __ISB </td>
402           <td>(</td>
403           <td class="paramtype">void&#160;</td>
404           <td class="paramname"></td><td>)</td>
405           <td></td>
406         </tr>
407       </table>
408 </div><div class="memdoc">
409
410 <p>Instruction Synchronization Barrier. </p>
411 <p>Instruction Synchronization Barrier flushes the pipeline in the processor, so that all instructions following the ISB are fetched from cache or memory, after the instruction has been completed. </p>
412
413 </div>
414 </div>
415 <a id="ga22a24f416b65c2f5a82d9f1162d9394d" name="ga22a24f416b65c2f5a82d9f1162d9394d"></a>
416 <h2 class="memtitle"><span class="permalink"><a href="#ga22a24f416b65c2f5a82d9f1162d9394d">&#9670;&#160;</a></span>__LDA()</h2>
417
418 <div class="memitem">
419 <div class="memproto">
420       <table class="memname">
421         <tr>
422           <td class="memname">uint32_t __LDA </td>
423           <td>(</td>
424           <td class="paramtype">volatile uint32_t *&#160;</td>
425           <td class="paramname"><em>ptr</em></td><td>)</td>
426           <td></td>
427         </tr>
428       </table>
429 </div><div class="memdoc">
430
431 <p>Load-Acquire (32 bit) </p>
432 <p>Executes a LDA instruction for 32 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
433   <table class="params">
434     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
435   </table>
436   </dd>
437 </dl>
438 <dl class="section return"><dt>Returns</dt><dd>value of type uint32_t at (*ptr) </dd></dl>
439 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
440
441 </div>
442 </div>
443 <a id="ga263b9b2d9c06d731022873acddb6aa3f" name="ga263b9b2d9c06d731022873acddb6aa3f"></a>
444 <h2 class="memtitle"><span class="permalink"><a href="#ga263b9b2d9c06d731022873acddb6aa3f">&#9670;&#160;</a></span>__LDAB()</h2>
445
446 <div class="memitem">
447 <div class="memproto">
448       <table class="memname">
449         <tr>
450           <td class="memname">uint8_t __LDAB </td>
451           <td>(</td>
452           <td class="paramtype">volatile uint8_t *&#160;</td>
453           <td class="paramname"><em>ptr</em></td><td>)</td>
454           <td></td>
455         </tr>
456       </table>
457 </div><div class="memdoc">
458
459 <p>Load-Acquire (8 bit) </p>
460 <p>Executes a LDAB instruction for 8 bit value. </p><dl class="params"><dt>Parameters</dt><dd>
461   <table class="params">
462     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
463   </table>
464   </dd>
465 </dl>
466 <dl class="section return"><dt>Returns</dt><dd>value of type uint8_t at (*ptr) </dd></dl>
467 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
468
469 </div>
470 </div>
471 <a id="ga3c74d923529f664eda099d1b2668b3c1" name="ga3c74d923529f664eda099d1b2668b3c1"></a>
472 <h2 class="memtitle"><span class="permalink"><a href="#ga3c74d923529f664eda099d1b2668b3c1">&#9670;&#160;</a></span>__LDAEX()</h2>
473
474 <div class="memitem">
475 <div class="memproto">
476       <table class="memname">
477         <tr>
478           <td class="memname">uint32_t __LDAEX </td>
479           <td>(</td>
480           <td class="paramtype">volatile uint32_t *&#160;</td>
481           <td class="paramname"><em>ptr</em></td><td>)</td>
482           <td></td>
483         </tr>
484       </table>
485 </div><div class="memdoc">
486
487 <p>Load-Acquire Exclusive (32 bit) </p>
488 <p>Executes a LDA exclusive instruction for 32 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
489   <table class="params">
490     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
491   </table>
492   </dd>
493 </dl>
494 <dl class="section return"><dt>Returns</dt><dd>value of type uint32_t at (*ptr) </dd></dl>
495 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
496
497 </div>
498 </div>
499 <a id="ga513beada40cdd7123281f22482603bcc" name="ga513beada40cdd7123281f22482603bcc"></a>
500 <h2 class="memtitle"><span class="permalink"><a href="#ga513beada40cdd7123281f22482603bcc">&#9670;&#160;</a></span>__LDAEXB()</h2>
501
502 <div class="memitem">
503 <div class="memproto">
504       <table class="memname">
505         <tr>
506           <td class="memname">uint8_t __LDAEXB </td>
507           <td>(</td>
508           <td class="paramtype">volatile uint32_t *&#160;</td>
509           <td class="paramname"><em>ptr</em></td><td>)</td>
510           <td></td>
511         </tr>
512       </table>
513 </div><div class="memdoc">
514
515 <p>Load-Acquire Exclusive (8 bit) </p>
516 <p>Executes a LDAB exclusive instruction for 8 bit value. </p><dl class="params"><dt>Parameters</dt><dd>
517   <table class="params">
518     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
519   </table>
520   </dd>
521 </dl>
522 <dl class="section return"><dt>Returns</dt><dd>value of type uint8_t at (*ptr) </dd></dl>
523 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
524
525 </div>
526 </div>
527 <a id="ga426b61640fc68f21b21ae4dc2726f3b4" name="ga426b61640fc68f21b21ae4dc2726f3b4"></a>
528 <h2 class="memtitle"><span class="permalink"><a href="#ga426b61640fc68f21b21ae4dc2726f3b4">&#9670;&#160;</a></span>__LDAEXH()</h2>
529
530 <div class="memitem">
531 <div class="memproto">
532       <table class="memname">
533         <tr>
534           <td class="memname">uint16_t __LDAEXH </td>
535           <td>(</td>
536           <td class="paramtype">volatile uint32_t *&#160;</td>
537           <td class="paramname"><em>ptr</em></td><td>)</td>
538           <td></td>
539         </tr>
540       </table>
541 </div><div class="memdoc">
542
543 <p>Load-Acquire Exclusive (16 bit) </p>
544 <p>Executes a LDAH exclusive instruction for 16 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
545   <table class="params">
546     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
547   </table>
548   </dd>
549 </dl>
550 <dl class="section return"><dt>Returns</dt><dd>value of type uint16_t at (*ptr) </dd></dl>
551 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
552
553 </div>
554 </div>
555 <a id="ga5810ac0b87a37e321c2f909cd3860499" name="ga5810ac0b87a37e321c2f909cd3860499"></a>
556 <h2 class="memtitle"><span class="permalink"><a href="#ga5810ac0b87a37e321c2f909cd3860499">&#9670;&#160;</a></span>__LDAH()</h2>
557
558 <div class="memitem">
559 <div class="memproto">
560       <table class="memname">
561         <tr>
562           <td class="memname">uint16_t __LDAH </td>
563           <td>(</td>
564           <td class="paramtype">volatile uint16_t *&#160;</td>
565           <td class="paramname"><em>ptr</em></td><td>)</td>
566           <td></td>
567         </tr>
568       </table>
569 </div><div class="memdoc">
570
571 <p>Load-Acquire (16 bit) </p>
572 <p>Executes a LDAH instruction for 16 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
573   <table class="params">
574     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
575   </table>
576   </dd>
577 </dl>
578 <dl class="section return"><dt>Returns</dt><dd>value of type uint16_t at (*ptr) </dd></dl>
579 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
580
581 </div>
582 </div>
583 <a id="ga9464d75db32846aa8295c3c3adfacb41" name="ga9464d75db32846aa8295c3c3adfacb41"></a>
584 <h2 class="memtitle"><span class="permalink"><a href="#ga9464d75db32846aa8295c3c3adfacb41">&#9670;&#160;</a></span>__LDRBT()</h2>
585
586 <div class="memitem">
587 <div class="memproto">
588       <table class="memname">
589         <tr>
590           <td class="memname">uint8_t __LDRBT </td>
591           <td>(</td>
592           <td class="paramtype">uint8_t&#160;</td>
593           <td class="paramname"><em>ptr</em></td><td>)</td>
594           <td></td>
595         </tr>
596       </table>
597 </div><div class="memdoc">
598
599 <p>LDRT Unprivileged (8 bit) </p>
600 <p>This function executed an Unprivileged LDRT command for 8 bit value.</p>
601 <dl class="params"><dt>Parameters</dt><dd>
602   <table class="params">
603     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
604   </table>
605   </dd>
606 </dl>
607 <dl class="section return"><dt>Returns</dt><dd>value of type uint8_t at (*ptr) </dd></dl>
608
609 </div>
610 </div>
611 <a id="ga9e3ac13d8dcf4331176b624cf6234a7e" name="ga9e3ac13d8dcf4331176b624cf6234a7e"></a>
612 <h2 class="memtitle"><span class="permalink"><a href="#ga9e3ac13d8dcf4331176b624cf6234a7e">&#9670;&#160;</a></span>__LDREXB()</h2>
613
614 <div class="memitem">
615 <div class="memproto">
616       <table class="memname">
617         <tr>
618           <td class="memname">uint8_t __LDREXB </td>
619           <td>(</td>
620           <td class="paramtype">volatile uint8_t *&#160;</td>
621           <td class="paramname"><em>addr</em></td><td>)</td>
622           <td></td>
623         </tr>
624       </table>
625 </div><div class="memdoc">
626
627 <p>LDR Exclusive (8 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. </p>
628 <p>This function executed an exclusive LDR command for 8 bit value [not for Cortex-M0, Cortex-M0+, or SC000].</p>
629 <dl class="params"><dt>Parameters</dt><dd>
630   <table class="params">
631     <tr><td class="paramdir">[in]</td><td class="paramname">*addr</td><td>Pointer to data </td></tr>
632   </table>
633   </dd>
634 </dl>
635 <dl class="section return"><dt>Returns</dt><dd>value of type uint8_t at (*addr) </dd></dl>
636
637 </div>
638 </div>
639 <a id="ga9feffc093d6f68b120d592a7a0d45a15" name="ga9feffc093d6f68b120d592a7a0d45a15"></a>
640 <h2 class="memtitle"><span class="permalink"><a href="#ga9feffc093d6f68b120d592a7a0d45a15">&#9670;&#160;</a></span>__LDREXH()</h2>
641
642 <div class="memitem">
643 <div class="memproto">
644       <table class="memname">
645         <tr>
646           <td class="memname">uint16_t __LDREXH </td>
647           <td>(</td>
648           <td class="paramtype">volatile uint16_t *&#160;</td>
649           <td class="paramname"><em>addr</em></td><td>)</td>
650           <td></td>
651         </tr>
652       </table>
653 </div><div class="memdoc">
654
655 <p>LDR Exclusive (16 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. </p>
656 <p>This function executed an exclusive LDR command for 16 bit values [not for Cortex-M0, Cortex-M0+, or SC000].</p>
657 <dl class="params"><dt>Parameters</dt><dd>
658   <table class="params">
659     <tr><td class="paramdir">[in]</td><td class="paramname">*addr</td><td>Pointer to data </td></tr>
660   </table>
661   </dd>
662 </dl>
663 <dl class="section return"><dt>Returns</dt><dd>value of type uint16_t at (*addr) </dd></dl>
664
665 </div>
666 </div>
667 <a id="gabd78840a0f2464905b7cec791ebc6a4c" name="gabd78840a0f2464905b7cec791ebc6a4c"></a>
668 <h2 class="memtitle"><span class="permalink"><a href="#gabd78840a0f2464905b7cec791ebc6a4c">&#9670;&#160;</a></span>__LDREXW()</h2>
669
670 <div class="memitem">
671 <div class="memproto">
672       <table class="memname">
673         <tr>
674           <td class="memname">uint32_t __LDREXW </td>
675           <td>(</td>
676           <td class="paramtype">volatile uint32_t *&#160;</td>
677           <td class="paramname"><em>addr</em></td><td>)</td>
678           <td></td>
679         </tr>
680       </table>
681 </div><div class="memdoc">
682
683 <p>LDR Exclusive (32 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. </p>
684 <p>This function executed an exclusive LDR command for 32 bit values [not for Cortex-M0, Cortex-M0+, or SC000].</p>
685 <dl class="params"><dt>Parameters</dt><dd>
686   <table class="params">
687     <tr><td class="paramdir">[in]</td><td class="paramname">*addr</td><td>Pointer to data </td></tr>
688   </table>
689   </dd>
690 </dl>
691 <dl class="section return"><dt>Returns</dt><dd>value of type uint32_t at (*addr) </dd></dl>
692
693 </div>
694 </div>
695 <a id="gaa762b8bc5634ce38cb14d62a6b2aee32" name="gaa762b8bc5634ce38cb14d62a6b2aee32"></a>
696 <h2 class="memtitle"><span class="permalink"><a href="#gaa762b8bc5634ce38cb14d62a6b2aee32">&#9670;&#160;</a></span>__LDRHT()</h2>
697
698 <div class="memitem">
699 <div class="memproto">
700       <table class="memname">
701         <tr>
702           <td class="memname">uint16_t __LDRHT </td>
703           <td>(</td>
704           <td class="paramtype">uint16_t&#160;</td>
705           <td class="paramname"><em>ptr</em></td><td>)</td>
706           <td></td>
707         </tr>
708       </table>
709 </div><div class="memdoc">
710
711 <p>LDRT Unprivileged (16 bit) </p>
712 <p>This function executed an Unprivileged LDRT command for 16 bit values.</p>
713 <dl class="params"><dt>Parameters</dt><dd>
714   <table class="params">
715     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
716   </table>
717   </dd>
718 </dl>
719 <dl class="section return"><dt>Returns</dt><dd>value of type uint16_t at (*ptr) </dd></dl>
720
721 </div>
722 </div>
723 <a id="ga616504f5da979ba8a073d428d6e8d5c7" name="ga616504f5da979ba8a073d428d6e8d5c7"></a>
724 <h2 class="memtitle"><span class="permalink"><a href="#ga616504f5da979ba8a073d428d6e8d5c7">&#9670;&#160;</a></span>__LDRT()</h2>
725
726 <div class="memitem">
727 <div class="memproto">
728       <table class="memname">
729         <tr>
730           <td class="memname">uint32_t __LDRT </td>
731           <td>(</td>
732           <td class="paramtype">uint32_t&#160;</td>
733           <td class="paramname"><em>ptr</em></td><td>)</td>
734           <td></td>
735         </tr>
736       </table>
737 </div><div class="memdoc">
738
739 <p>LDRT Unprivileged (32 bit) </p>
740 <p>This function executed an Unprivileged LDRT command for 32 bit values.</p>
741 <dl class="params"><dt>Parameters</dt><dd>
742   <table class="params">
743     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
744   </table>
745   </dd>
746 </dl>
747 <dl class="section return"><dt>Returns</dt><dd>value of type uint32_t at (*ptr) </dd></dl>
748
749 </div>
750 </div>
751 <a id="gac71fad9f0a91980fecafcb450ee0a63e" name="gac71fad9f0a91980fecafcb450ee0a63e"></a>
752 <h2 class="memtitle"><span class="permalink"><a href="#gac71fad9f0a91980fecafcb450ee0a63e">&#9670;&#160;</a></span>__NOP()</h2>
753
754 <div class="memitem">
755 <div class="memproto">
756       <table class="memname">
757         <tr>
758           <td class="memname">void __NOP </td>
759           <td>(</td>
760           <td class="paramtype">void&#160;</td>
761           <td class="paramname"></td><td>)</td>
762           <td></td>
763         </tr>
764       </table>
765 </div><div class="memdoc">
766
767 <p>No Operation. </p>
768 <p>This function does nothing. This instruction can be used for code alignment purposes. </p>
769
770 </div>
771 </div>
772 <a id="gad6f9f297f6b91a995ee199fbc796b863" name="gad6f9f297f6b91a995ee199fbc796b863"></a>
773 <h2 class="memtitle"><span class="permalink"><a href="#gad6f9f297f6b91a995ee199fbc796b863">&#9670;&#160;</a></span>__RBIT()</h2>
774
775 <div class="memitem">
776 <div class="memproto">
777       <table class="memname">
778         <tr>
779           <td class="memname">uint32_t __RBIT </td>
780           <td>(</td>
781           <td class="paramtype">uint32_t&#160;</td>
782           <td class="paramname"><em>value</em></td><td>)</td>
783           <td></td>
784         </tr>
785       </table>
786 </div><div class="memdoc">
787
788 <p>Reverse bit order of value. </p>
789 <dl class="params"><dt>Parameters</dt><dd>
790   <table class="params">
791     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to reverse </td></tr>
792   </table>
793   </dd>
794 </dl>
795 <dl class="section return"><dt>Returns</dt><dd>Reversed value </dd></dl>
796
797 </div>
798 </div>
799 <a id="ga4717abc17af5ba29b1e4c055e0a0d9b8" name="ga4717abc17af5ba29b1e4c055e0a0d9b8"></a>
800 <h2 class="memtitle"><span class="permalink"><a href="#ga4717abc17af5ba29b1e4c055e0a0d9b8">&#9670;&#160;</a></span>__REV()</h2>
801
802 <div class="memitem">
803 <div class="memproto">
804       <table class="memname">
805         <tr>
806           <td class="memname">uint32_t __REV </td>
807           <td>(</td>
808           <td class="paramtype">uint32_t&#160;</td>
809           <td class="paramname"><em>value</em></td><td>)</td>
810           <td></td>
811         </tr>
812       </table>
813 </div><div class="memdoc">
814
815 <p>Reverse byte order (32 bit) </p>
816 <p>Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. </p><dl class="params"><dt>Parameters</dt><dd>
817   <table class="params">
818     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to reverse </td></tr>
819   </table>
820   </dd>
821 </dl>
822 <dl class="section return"><dt>Returns</dt><dd>Reversed value </dd></dl>
823
824 </div>
825 </div>
826 <a id="gaeef6f853b6df3a365c838ee5b49a7a26" name="gaeef6f853b6df3a365c838ee5b49a7a26"></a>
827 <h2 class="memtitle"><span class="permalink"><a href="#gaeef6f853b6df3a365c838ee5b49a7a26">&#9670;&#160;</a></span>__REV16()</h2>
828
829 <div class="memitem">
830 <div class="memproto">
831       <table class="memname">
832         <tr>
833           <td class="memname">uint32_t __REV16 </td>
834           <td>(</td>
835           <td class="paramtype">uint32_t&#160;</td>
836           <td class="paramname"><em>value</em></td><td>)</td>
837           <td></td>
838         </tr>
839       </table>
840 </div><div class="memdoc">
841
842 <p>Reverse byte order (16 bit) </p>
843 <p>Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. </p><dl class="params"><dt>Parameters</dt><dd>
844   <table class="params">
845     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to reverse </td></tr>
846   </table>
847   </dd>
848 </dl>
849 <dl class="section return"><dt>Returns</dt><dd>Reversed value </dd></dl>
850
851 </div>
852 </div>
853 <a id="ga211618c03a0bf3264a7b22ad626d4f0a" name="ga211618c03a0bf3264a7b22ad626d4f0a"></a>
854 <h2 class="memtitle"><span class="permalink"><a href="#ga211618c03a0bf3264a7b22ad626d4f0a">&#9670;&#160;</a></span>__REVSH()</h2>
855
856 <div class="memitem">
857 <div class="memproto">
858       <table class="memname">
859         <tr>
860           <td class="memname">int16_t __REVSH </td>
861           <td>(</td>
862           <td class="paramtype">int16_t&#160;</td>
863           <td class="paramname"><em>value</em></td><td>)</td>
864           <td></td>
865         </tr>
866       </table>
867 </div><div class="memdoc">
868
869 <p>Reverse byte order (16 bit) </p>
870 <p>Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. </p><dl class="params"><dt>Parameters</dt><dd>
871   <table class="params">
872     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to reverse </td></tr>
873   </table>
874   </dd>
875 </dl>
876 <dl class="section return"><dt>Returns</dt><dd>Reversed value </dd></dl>
877
878 </div>
879 </div>
880 <a id="gaf66beb577bb9d90424c3d1d7f684c024" name="gaf66beb577bb9d90424c3d1d7f684c024"></a>
881 <h2 class="memtitle"><span class="permalink"><a href="#gaf66beb577bb9d90424c3d1d7f684c024">&#9670;&#160;</a></span>__ROR()</h2>
882
883 <div class="memitem">
884 <div class="memproto">
885       <table class="memname">
886         <tr>
887           <td class="memname">uint32_t __ROR </td>
888           <td>(</td>
889           <td class="paramtype">uint32_t&#160;</td>
890           <td class="paramname"><em>value</em>, </td>
891         </tr>
892         <tr>
893           <td class="paramkey"></td>
894           <td></td>
895           <td class="paramtype">uint32_t&#160;</td>
896           <td class="paramname"><em>shift</em>&#160;</td>
897         </tr>
898         <tr>
899           <td></td>
900           <td>)</td>
901           <td></td><td></td>
902         </tr>
903       </table>
904 </div><div class="memdoc">
905
906 <p>Rotate a value right by a number of bits. </p>
907 <p>This function rotates a value right by a specified number of bits.</p>
908 <dl class="params"><dt>Parameters</dt><dd>
909   <table class="params">
910     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to be shifted right </td></tr>
911     <tr><td class="paramdir">[in]</td><td class="paramname">shift</td><td>Number of bits in the range [1..31] </td></tr>
912   </table>
913   </dd>
914 </dl>
915 <dl class="section return"><dt>Returns</dt><dd>Rotated value </dd></dl>
916
917 </div>
918 </div>
919 <a id="gac09134f1bf9c49db07282001afcc9380" name="gac09134f1bf9c49db07282001afcc9380"></a>
920 <h2 class="memtitle"><span class="permalink"><a href="#gac09134f1bf9c49db07282001afcc9380">&#9670;&#160;</a></span>__RRX()</h2>
921
922 <div class="memitem">
923 <div class="memproto">
924       <table class="memname">
925         <tr>
926           <td class="memname">uint32_t __RRX </td>
927           <td>(</td>
928           <td class="paramtype">uint32_t&#160;</td>
929           <td class="paramname"><em>value</em></td><td>)</td>
930           <td></td>
931         </tr>
932       </table>
933 </div><div class="memdoc">
934
935 <p>Rotate Right with Extend (32 bit) </p>
936 <p>This function moves each bit of a bitstring right by one bit. The carry input is shifted in at the left end of the bitstring.</p>
937 <dl class="params"><dt>Parameters</dt><dd>
938   <table class="params">
939     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to rotate </td></tr>
940   </table>
941   </dd>
942 </dl>
943 <dl class="section return"><dt>Returns</dt><dd>Rotated value </dd></dl>
944
945 </div>
946 </div>
947 <a id="ga3c34da7eb16496ae2668a5b95fa441e7" name="ga3c34da7eb16496ae2668a5b95fa441e7"></a>
948 <h2 class="memtitle"><span class="permalink"><a href="#ga3c34da7eb16496ae2668a5b95fa441e7">&#9670;&#160;</a></span>__SEV()</h2>
949
950 <div class="memitem">
951 <div class="memproto">
952       <table class="memname">
953         <tr>
954           <td class="memname">void __SEV </td>
955           <td>(</td>
956           <td class="paramtype">void&#160;</td>
957           <td class="paramname"></td><td>)</td>
958           <td></td>
959         </tr>
960       </table>
961 </div><div class="memdoc">
962
963 <p>Send Event. </p>
964 <p>Send Event is a hint instruction. It causes an event to be signaled to the CPU. </p>
965
966 </div>
967 </div>
968 <a id="ga8cfeb5ffe0e49ec6b29dafdde92e5118" name="ga8cfeb5ffe0e49ec6b29dafdde92e5118"></a>
969 <h2 class="memtitle"><span class="permalink"><a href="#ga8cfeb5ffe0e49ec6b29dafdde92e5118">&#9670;&#160;</a></span>__SSAT()</h2>
970
971 <div class="memitem">
972 <div class="memproto">
973       <table class="memname">
974         <tr>
975           <td class="memname">int32_t __SSAT </td>
976           <td>(</td>
977           <td class="paramtype">int32_t&#160;</td>
978           <td class="paramname"><em>value</em>, </td>
979         </tr>
980         <tr>
981           <td class="paramkey"></td>
982           <td></td>
983           <td class="paramtype">uint32_t&#160;</td>
984           <td class="paramname"><em>sat</em>&#160;</td>
985         </tr>
986         <tr>
987           <td></td>
988           <td>)</td>
989           <td></td><td></td>
990         </tr>
991       </table>
992 </div><div class="memdoc">
993
994 <p>Signed Saturate. </p>
995 <p>This function saturates a signed value. The Q bit is set if saturation occurs [not for Cortex-M0, Cortex-M0+, or SC000].</p>
996 <p>On Armv6-M (Cortex-M0, Cortex-M0+, and SC000) this function is not available as a core instruction instruction and thus __SSAT is implemented in software.</p>
997 <dl class="params"><dt>Parameters</dt><dd>
998   <table class="params">
999     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to be saturated </td></tr>
1000     <tr><td class="paramdir">[in]</td><td class="paramname">sat</td><td>Bit position to saturate to [1..32] </td></tr>
1001   </table>
1002   </dd>
1003 </dl>
1004 <dl class="section return"><dt>Returns</dt><dd>Saturated value </dd></dl>
1005
1006 </div>
1007 </div>
1008 <a id="ga5429d7083fb8d30c43cecd3a861e1672" name="ga5429d7083fb8d30c43cecd3a861e1672"></a>
1009 <h2 class="memtitle"><span class="permalink"><a href="#ga5429d7083fb8d30c43cecd3a861e1672">&#9670;&#160;</a></span>__STL()</h2>
1010
1011 <div class="memitem">
1012 <div class="memproto">
1013       <table class="memname">
1014         <tr>
1015           <td class="memname">void __STL </td>
1016           <td>(</td>
1017           <td class="paramtype">uint32_t&#160;</td>
1018           <td class="paramname"><em>value</em>, </td>
1019         </tr>
1020         <tr>
1021           <td class="paramkey"></td>
1022           <td></td>
1023           <td class="paramtype">volatile uint32_t *&#160;</td>
1024           <td class="paramname"><em>ptr</em>&#160;</td>
1025         </tr>
1026         <tr>
1027           <td></td>
1028           <td>)</td>
1029           <td></td><td></td>
1030         </tr>
1031       </table>
1032 </div><div class="memdoc">
1033
1034 <p>Store-Release (32 bit) </p>
1035 <p>Executes a STL instruction for 32 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
1036   <table class="params">
1037     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1038     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1039   </table>
1040   </dd>
1041 </dl>
1042 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
1043
1044 </div>
1045 </div>
1046 <a id="gace025d3a1f85d2ab9bae7288838d6bc8" name="gace025d3a1f85d2ab9bae7288838d6bc8"></a>
1047 <h2 class="memtitle"><span class="permalink"><a href="#gace025d3a1f85d2ab9bae7288838d6bc8">&#9670;&#160;</a></span>__STLB()</h2>
1048
1049 <div class="memitem">
1050 <div class="memproto">
1051       <table class="memname">
1052         <tr>
1053           <td class="memname">void __STLB </td>
1054           <td>(</td>
1055           <td class="paramtype">uint8_t&#160;</td>
1056           <td class="paramname"><em>value</em>, </td>
1057         </tr>
1058         <tr>
1059           <td class="paramkey"></td>
1060           <td></td>
1061           <td class="paramtype">volatile uint8_t *&#160;</td>
1062           <td class="paramname"><em>ptr</em>&#160;</td>
1063         </tr>
1064         <tr>
1065           <td></td>
1066           <td>)</td>
1067           <td></td><td></td>
1068         </tr>
1069       </table>
1070 </div><div class="memdoc">
1071
1072 <p>Store-Release (8 bit) </p>
1073 <p>Executes a STLB instruction for 8 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
1074   <table class="params">
1075     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1076     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1077   </table>
1078   </dd>
1079 </dl>
1080 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
1081
1082 </div>
1083 </div>
1084 <a id="gae7f955b91595cfd82a03e4b437c59afe" name="gae7f955b91595cfd82a03e4b437c59afe"></a>
1085 <h2 class="memtitle"><span class="permalink"><a href="#gae7f955b91595cfd82a03e4b437c59afe">&#9670;&#160;</a></span>__STLEX()</h2>
1086
1087 <div class="memitem">
1088 <div class="memproto">
1089       <table class="memname">
1090         <tr>
1091           <td class="memname">uint32_t __STLEX </td>
1092           <td>(</td>
1093           <td class="paramtype">uint32_t&#160;</td>
1094           <td class="paramname"><em>value</em>, </td>
1095         </tr>
1096         <tr>
1097           <td class="paramkey"></td>
1098           <td></td>
1099           <td class="paramtype">volatile uint32_t *&#160;</td>
1100           <td class="paramname"><em>ptr</em>&#160;</td>
1101         </tr>
1102         <tr>
1103           <td></td>
1104           <td>)</td>
1105           <td></td><td></td>
1106         </tr>
1107       </table>
1108 </div><div class="memdoc">
1109
1110 <p>Store-Release Exclusive (32 bit) </p>
1111 <p>Executes a STL exclusive instruction for 32 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
1112   <table class="params">
1113     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1114     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1115   </table>
1116   </dd>
1117 </dl>
1118 <dl class="section return"><dt>Returns</dt><dd>0 Function succeeded </dd>
1119 <dd>
1120 1 Function failed </dd></dl>
1121 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
1122
1123 </div>
1124 </div>
1125 <a id="ga590724a32a229978536fbbbd6cc82536" name="ga590724a32a229978536fbbbd6cc82536"></a>
1126 <h2 class="memtitle"><span class="permalink"><a href="#ga590724a32a229978536fbbbd6cc82536">&#9670;&#160;</a></span>__STLEXB()</h2>
1127
1128 <div class="memitem">
1129 <div class="memproto">
1130       <table class="memname">
1131         <tr>
1132           <td class="memname">uint32_t __STLEXB </td>
1133           <td>(</td>
1134           <td class="paramtype">uint8_t&#160;</td>
1135           <td class="paramname"><em>value</em>, </td>
1136         </tr>
1137         <tr>
1138           <td class="paramkey"></td>
1139           <td></td>
1140           <td class="paramtype">volatile uint8_t *&#160;</td>
1141           <td class="paramname"><em>ptr</em>&#160;</td>
1142         </tr>
1143         <tr>
1144           <td></td>
1145           <td>)</td>
1146           <td></td><td></td>
1147         </tr>
1148       </table>
1149 </div><div class="memdoc">
1150
1151 <p>Store-Release Exclusive (8 bit) </p>
1152 <p>Executes a STLB exclusive instruction for 8 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
1153   <table class="params">
1154     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1155     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1156   </table>
1157   </dd>
1158 </dl>
1159 <dl class="section return"><dt>Returns</dt><dd>0 Function succeeded </dd>
1160 <dd>
1161 1 Function failed </dd></dl>
1162 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
1163
1164 </div>
1165 </div>
1166 <a id="ga047c3bebca3d0ae348ab8370a046301d" name="ga047c3bebca3d0ae348ab8370a046301d"></a>
1167 <h2 class="memtitle"><span class="permalink"><a href="#ga047c3bebca3d0ae348ab8370a046301d">&#9670;&#160;</a></span>__STLEXH()</h2>
1168
1169 <div class="memitem">
1170 <div class="memproto">
1171       <table class="memname">
1172         <tr>
1173           <td class="memname">uint32_t __STLEXH </td>
1174           <td>(</td>
1175           <td class="paramtype">uint16_t&#160;</td>
1176           <td class="paramname"><em>value</em>, </td>
1177         </tr>
1178         <tr>
1179           <td class="paramkey"></td>
1180           <td></td>
1181           <td class="paramtype">volatile uint16_t *&#160;</td>
1182           <td class="paramname"><em>ptr</em>&#160;</td>
1183         </tr>
1184         <tr>
1185           <td></td>
1186           <td>)</td>
1187           <td></td><td></td>
1188         </tr>
1189       </table>
1190 </div><div class="memdoc">
1191
1192 <p>Store-Release Exclusive (16 bit) </p>
1193 <p>Executes a STLH exclusive instruction for 16 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
1194   <table class="params">
1195     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1196     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1197   </table>
1198   </dd>
1199 </dl>
1200 <dl class="section return"><dt>Returns</dt><dd>0 Function succeeded </dd>
1201 <dd>
1202 1 Function failed </dd></dl>
1203 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
1204
1205 </div>
1206 </div>
1207 <a id="ga25691650de536f9b248b15f6dc4a3e70" name="ga25691650de536f9b248b15f6dc4a3e70"></a>
1208 <h2 class="memtitle"><span class="permalink"><a href="#ga25691650de536f9b248b15f6dc4a3e70">&#9670;&#160;</a></span>__STLH()</h2>
1209
1210 <div class="memitem">
1211 <div class="memproto">
1212       <table class="memname">
1213         <tr>
1214           <td class="memname">void __STLH </td>
1215           <td>(</td>
1216           <td class="paramtype">uint16_t&#160;</td>
1217           <td class="paramname"><em>value</em>, </td>
1218         </tr>
1219         <tr>
1220           <td class="paramkey"></td>
1221           <td></td>
1222           <td class="paramtype">volatile uint16_t *&#160;</td>
1223           <td class="paramname"><em>ptr</em>&#160;</td>
1224         </tr>
1225         <tr>
1226           <td></td>
1227           <td>)</td>
1228           <td></td><td></td>
1229         </tr>
1230       </table>
1231 </div><div class="memdoc">
1232
1233 <p>Store-Release (16 bit) </p>
1234 <p>Executes a STLH instruction for 16 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
1235   <table class="params">
1236     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1237     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1238   </table>
1239   </dd>
1240 </dl>
1241 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
1242
1243 </div>
1244 </div>
1245 <a id="gad41aa59c92c0a165b7f98428d3320cd5" name="gad41aa59c92c0a165b7f98428d3320cd5"></a>
1246 <h2 class="memtitle"><span class="permalink"><a href="#gad41aa59c92c0a165b7f98428d3320cd5">&#9670;&#160;</a></span>__STRBT()</h2>
1247
1248 <div class="memitem">
1249 <div class="memproto">
1250       <table class="memname">
1251         <tr>
1252           <td class="memname">void __STRBT </td>
1253           <td>(</td>
1254           <td class="paramtype">uint8_t&#160;</td>
1255           <td class="paramname"><em>value</em>, </td>
1256         </tr>
1257         <tr>
1258           <td class="paramkey"></td>
1259           <td></td>
1260           <td class="paramtype">uint8_t&#160;</td>
1261           <td class="paramname"><em>ptr</em>&#160;</td>
1262         </tr>
1263         <tr>
1264           <td></td>
1265           <td>)</td>
1266           <td></td><td></td>
1267         </tr>
1268       </table>
1269 </div><div class="memdoc">
1270
1271 <p>STRT Unprivileged (8 bit) </p>
1272 <p>This function executed an Unprivileged STRT command for 8 bit values.</p>
1273 <dl class="params"><dt>Parameters</dt><dd>
1274   <table class="params">
1275     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1276     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1277   </table>
1278   </dd>
1279 </dl>
1280
1281 </div>
1282 </div>
1283 <a id="gaab6482d1f59f59e2b6b7efc1af391c99" name="gaab6482d1f59f59e2b6b7efc1af391c99"></a>
1284 <h2 class="memtitle"><span class="permalink"><a href="#gaab6482d1f59f59e2b6b7efc1af391c99">&#9670;&#160;</a></span>__STREXB()</h2>
1285
1286 <div class="memitem">
1287 <div class="memproto">
1288       <table class="memname">
1289         <tr>
1290           <td class="memname">uint32_t __STREXB </td>
1291           <td>(</td>
1292           <td class="paramtype">uint8_t&#160;</td>
1293           <td class="paramname"><em>value</em>, </td>
1294         </tr>
1295         <tr>
1296           <td class="paramkey"></td>
1297           <td></td>
1298           <td class="paramtype">volatile uint8_t *&#160;</td>
1299           <td class="paramname"><em>addr</em>&#160;</td>
1300         </tr>
1301         <tr>
1302           <td></td>
1303           <td>)</td>
1304           <td></td><td></td>
1305         </tr>
1306       </table>
1307 </div><div class="memdoc">
1308
1309 <p>STR Exclusive (8 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. </p>
1310 <p>This function executed an exclusive STR command for 8 bit values [not for Cortex-M0, Cortex-M0+, or SC000].</p>
1311 <dl class="params"><dt>Parameters</dt><dd>
1312   <table class="params">
1313     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1314     <tr><td class="paramdir">[in]</td><td class="paramname">*addr</td><td>Pointer to location </td></tr>
1315   </table>
1316   </dd>
1317 </dl>
1318 <dl class="section return"><dt>Returns</dt><dd>0 Function succeeded </dd>
1319 <dd>
1320 1 Function failed </dd></dl>
1321
1322 </div>
1323 </div>
1324 <a id="ga0a354bdf71caa52f081a4a54e84c8d2a" name="ga0a354bdf71caa52f081a4a54e84c8d2a"></a>
1325 <h2 class="memtitle"><span class="permalink"><a href="#ga0a354bdf71caa52f081a4a54e84c8d2a">&#9670;&#160;</a></span>__STREXH()</h2>
1326
1327 <div class="memitem">
1328 <div class="memproto">
1329       <table class="memname">
1330         <tr>
1331           <td class="memname">uint32_t __STREXH </td>
1332           <td>(</td>
1333           <td class="paramtype">uint16_t&#160;</td>
1334           <td class="paramname"><em>value</em>, </td>
1335         </tr>
1336         <tr>
1337           <td class="paramkey"></td>
1338           <td></td>
1339           <td class="paramtype">volatile uint16_t *&#160;</td>
1340           <td class="paramname"><em>addr</em>&#160;</td>
1341         </tr>
1342         <tr>
1343           <td></td>
1344           <td>)</td>
1345           <td></td><td></td>
1346         </tr>
1347       </table>
1348 </div><div class="memdoc">
1349
1350 <p>STR Exclusive (16 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. </p>
1351 <p>This function executed an exclusive STR command for 16 bit values [not for Cortex-M0, Cortex-M0+, or SC000].</p>
1352 <dl class="params"><dt>Parameters</dt><dd>
1353   <table class="params">
1354     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1355     <tr><td class="paramdir">[in]</td><td class="paramname">*addr</td><td>Pointer to location </td></tr>
1356   </table>
1357   </dd>
1358 </dl>
1359 <dl class="section return"><dt>Returns</dt><dd>0 Function succeeded </dd>
1360 <dd>
1361 1 Function failed </dd></dl>
1362
1363 </div>
1364 </div>
1365 <a id="ga335deaaa7991490e1450cb7d1e4c5197" name="ga335deaaa7991490e1450cb7d1e4c5197"></a>
1366 <h2 class="memtitle"><span class="permalink"><a href="#ga335deaaa7991490e1450cb7d1e4c5197">&#9670;&#160;</a></span>__STREXW()</h2>
1367
1368 <div class="memitem">
1369 <div class="memproto">
1370       <table class="memname">
1371         <tr>
1372           <td class="memname">uint32_t __STREXW </td>
1373           <td>(</td>
1374           <td class="paramtype">uint32_t&#160;</td>
1375           <td class="paramname"><em>value</em>, </td>
1376         </tr>
1377         <tr>
1378           <td class="paramkey"></td>
1379           <td></td>
1380           <td class="paramtype">volatile uint32_t *&#160;</td>
1381           <td class="paramname"><em>addr</em>&#160;</td>
1382         </tr>
1383         <tr>
1384           <td></td>
1385           <td>)</td>
1386           <td></td><td></td>
1387         </tr>
1388       </table>
1389 </div><div class="memdoc">
1390
1391 <p>STR Exclusive (32 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. </p>
1392 <p>This function executed an exclusive STR command for 32 bit values [not for Cortex-M0, Cortex-M0+, or SC000].</p>
1393 <dl class="params"><dt>Parameters</dt><dd>
1394   <table class="params">
1395     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1396     <tr><td class="paramdir">[in]</td><td class="paramname">*addr</td><td>Pointer to location </td></tr>
1397   </table>
1398   </dd>
1399 </dl>
1400 <dl class="section return"><dt>Returns</dt><dd>0 Function succeeded </dd>
1401 <dd>
1402 1 Function failed </dd></dl>
1403
1404 </div>
1405 </div>
1406 <a id="ga2b5d93b8e461755b1072a03df3f1722e" name="ga2b5d93b8e461755b1072a03df3f1722e"></a>
1407 <h2 class="memtitle"><span class="permalink"><a href="#ga2b5d93b8e461755b1072a03df3f1722e">&#9670;&#160;</a></span>__STRHT()</h2>
1408
1409 <div class="memitem">
1410 <div class="memproto">
1411       <table class="memname">
1412         <tr>
1413           <td class="memname">void __STRHT </td>
1414           <td>(</td>
1415           <td class="paramtype">uint16_t&#160;</td>
1416           <td class="paramname"><em>value</em>, </td>
1417         </tr>
1418         <tr>
1419           <td class="paramkey"></td>
1420           <td></td>
1421           <td class="paramtype">uint16_t&#160;</td>
1422           <td class="paramname"><em>ptr</em>&#160;</td>
1423         </tr>
1424         <tr>
1425           <td></td>
1426           <td>)</td>
1427           <td></td><td></td>
1428         </tr>
1429       </table>
1430 </div><div class="memdoc">
1431
1432 <p>STRT Unprivileged (16 bit) </p>
1433 <p>This function executed an Unprivileged STRT command for 16 bit values.</p>
1434 <dl class="params"><dt>Parameters</dt><dd>
1435   <table class="params">
1436     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1437     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1438   </table>
1439   </dd>
1440 </dl>
1441
1442 </div>
1443 </div>
1444 <a id="ga625bc4ac0b1d50de9bcd13d9f050030e" name="ga625bc4ac0b1d50de9bcd13d9f050030e"></a>
1445 <h2 class="memtitle"><span class="permalink"><a href="#ga625bc4ac0b1d50de9bcd13d9f050030e">&#9670;&#160;</a></span>__STRT()</h2>
1446
1447 <div class="memitem">
1448 <div class="memproto">
1449       <table class="memname">
1450         <tr>
1451           <td class="memname">void __STRT </td>
1452           <td>(</td>
1453           <td class="paramtype">uint32_t&#160;</td>
1454           <td class="paramname"><em>value</em>, </td>
1455         </tr>
1456         <tr>
1457           <td class="paramkey"></td>
1458           <td></td>
1459           <td class="paramtype">uint32_t&#160;</td>
1460           <td class="paramname"><em>ptr</em>&#160;</td>
1461         </tr>
1462         <tr>
1463           <td></td>
1464           <td>)</td>
1465           <td></td><td></td>
1466         </tr>
1467       </table>
1468 </div><div class="memdoc">
1469
1470 <p>STRT Unprivileged (32 bit) </p>
1471 <p>This function executed an Unprivileged STRT command for 32 bit values.</p>
1472 <dl class="params"><dt>Parameters</dt><dd>
1473   <table class="params">
1474     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1475     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1476   </table>
1477   </dd>
1478 </dl>
1479
1480 </div>
1481 </div>
1482 <a id="ga9ba87371aebd17dd6244ed3458b29b5d" name="ga9ba87371aebd17dd6244ed3458b29b5d"></a>
1483 <h2 class="memtitle"><span class="permalink"><a href="#ga9ba87371aebd17dd6244ed3458b29b5d">&#9670;&#160;</a></span>__USAT()</h2>
1484
1485 <div class="memitem">
1486 <div class="memproto">
1487       <table class="memname">
1488         <tr>
1489           <td class="memname">uint32_t __USAT </td>
1490           <td>(</td>
1491           <td class="paramtype">int32_t&#160;</td>
1492           <td class="paramname"><em>value</em>, </td>
1493         </tr>
1494         <tr>
1495           <td class="paramkey"></td>
1496           <td></td>
1497           <td class="paramtype">uint32_t&#160;</td>
1498           <td class="paramname"><em>sat</em>&#160;</td>
1499         </tr>
1500         <tr>
1501           <td></td>
1502           <td>)</td>
1503           <td></td><td></td>
1504         </tr>
1505       </table>
1506 </div><div class="memdoc">
1507
1508 <p>Unsigned Saturate. </p>
1509 <p>This function saturates an unsigned value. The Q bit is set if saturation occurs [not for Cortex-M0, Cortex-M0+, or SC000].</p>
1510 <p>On Armv6-M (Cortex-M0, Cortex-M0+, and SC000) this function is not available as a core instruction instruction and thus __USAT is implemented in software.</p>
1511 <dl class="params"><dt>Parameters</dt><dd>
1512   <table class="params">
1513     <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to be saturated </td></tr>
1514     <tr><td class="paramdir">[in]</td><td class="paramname">sat</td><td>Bit position to saturate to [0..31] </td></tr>
1515   </table>
1516   </dd>
1517 </dl>
1518 <dl class="section return"><dt>Returns</dt><dd>Saturated value </dd></dl>
1519
1520 </div>
1521 </div>
1522 <a id="gad3efec76c3bfa2b8528ded530386c563" name="gad3efec76c3bfa2b8528ded530386c563"></a>
1523 <h2 class="memtitle"><span class="permalink"><a href="#gad3efec76c3bfa2b8528ded530386c563">&#9670;&#160;</a></span>__WFE()</h2>
1524
1525 <div class="memitem">
1526 <div class="memproto">
1527       <table class="memname">
1528         <tr>
1529           <td class="memname">void __WFE </td>
1530           <td>(</td>
1531           <td class="paramtype">void&#160;</td>
1532           <td class="paramname"></td><td>)</td>
1533           <td></td>
1534         </tr>
1535       </table>
1536 </div><div class="memdoc">
1537
1538 <p>Wait For Event. </p>
1539 <p>Wait For Event is a hint instruction that permits the processor to enter a low-power state until an events occurs: </p><ul>
1540 <li>If the <b>event register is 0</b>, then WFE suspends execution until one of the following events occurs:<ul>
1541 <li>An exception, unless masked by the exception mask registers or the current priority level.</li>
1542 <li>An exception enters the Pending state, if SEVONPEND in the System Control Register is set.</li>
1543 <li>A Debug Entry request, if Debug is enabled.</li>
1544 <li>An event signaled by a peripheral or another processor in a multiprocessor system using the SEV instruction.</li>
1545 </ul>
1546 </li>
1547 </ul>
1548 <ul>
1549 <li>If the <b>event register is 1</b>, then WFE clears it to 0 and returns immediately. </li>
1550 </ul>
1551
1552 </div>
1553 </div>
1554 <a id="gaed91dfbf3d7d7b7fba8d912fcbeaad88" name="gaed91dfbf3d7d7b7fba8d912fcbeaad88"></a>
1555 <h2 class="memtitle"><span class="permalink"><a href="#gaed91dfbf3d7d7b7fba8d912fcbeaad88">&#9670;&#160;</a></span>__WFI()</h2>
1556
1557 <div class="memitem">
1558 <div class="memproto">
1559       <table class="memname">
1560         <tr>
1561           <td class="memname">void __WFI </td>
1562           <td>(</td>
1563           <td class="paramtype">void&#160;</td>
1564           <td class="paramname"></td><td>)</td>
1565           <td></td>
1566         </tr>
1567       </table>
1568 </div><div class="memdoc">
1569
1570 <p>Wait For Interrupt. </p>
1571 <p>WFI is a hint instruction that suspends execution until one of the following events occurs:</p><ul>
1572 <li>A non-masked interrupt occurs and is taken.</li>
1573 <li>An interrupt masked by PRIMASK becomes pending.</li>
1574 <li>A Debug Entry request. </li>
1575 </ul>
1576
1577 </div>
1578 </div>
1579 </div><!-- contents -->
1580 </div><!-- doc-content -->
1581 <!-- start footer part -->
1582 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
1583   <ul>
1584     <li class="footer">
1585       <script type="text/javascript">
1586         <!--
1587         writeFooter.call(this);
1588         //-->
1589       </script> 
1590     </li>
1591   </ul>
1592 </div>
1593 </body>
1594 </html>