📄 fpparchlib.html
字号:
- registers <b>st/mm0</b> - <b>st/mm7</b> (10 bytes * 8)<br> 512 byte new context with fxsave and fxrstor instruction<br> - control word, status word, tag word, <br> - last FP instruction op code,<br> - instruction pointer,<br> - instruction pointer selector,<br> - data pointer,<br> - data pointer selector,<br> - registers <b>st/mm0</b> - <b>st/mm7</b> (10 bytes * 8)<br> - registers <b>xmm0</b> - <b>xmm7</b> (16 bytes * 8)<p><b>ARM</b>:<br> - currently, on this architecture, this routine does nothing.<p><b>SimSolaris</b>:<br> - register <b>fsr</b><br> - registers <b>f0</b> - <b>f31</b><p><b>SimNT</b>:<br> - this routine does nothing on Windows simulator. Floating point<br> registers are saved by Windows.<p></blockquote><h4>RETURNS</h4><blockquote><p>N/A<p></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./fppArchLib.html#top">fppArchLib</a></b>, <b><a href="./fppArchLib.html#fppRestore">fppRestore</a>( )</b><hr><a name="fppRestore"></a><p align=right><a href="rtnIndex.htm"><i>OS Libraries : Routines</i></a></p></blockquote><h1>fppRestore( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>fppRestore( )</strong> - restore the floating-point coprocessor context</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>void fppRestore ( FP_CONTEXT * pFpContext /* where to restore context from */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine restores the floating-point coprocessor context.The context restored is:<p><b>MC680x0</b>:<br> - registers <b>fpcr</b>, <b>fpsr</b>, and <b>fpiar</b><br> - registers <b>f0</b> - <b>f7</b><br> - internal state frame (if NULL, the other registers are not saved.)<p><b>MIPS</b>:<br> - register <b>fpcsr</b><br> - registers <b>fp0</b> - <b>fp31</b><p><b>SH-4</b>:<br> - registers <b>fpcsr</b> and <b>fpul</b><br> - registers <b>fr0</b> - <b>fr15</b><br> - registers <b>xf0</b> - <b>xf15</b><p><b>x86</b>:<br> 108 byte old context with fsave and frstor instruction<br> - control word, status word, tag word, <br> - instruction pointer,<br> - instruction pointer selector,<br> - last FP instruction op code,<br> - data pointer,<br> - data pointer selector,<br> - registers <b>st/mm0</b> - <b>st/mm7</b> (10 bytes * 8)<br> 512 byte new context with fxsave and fxrstor instruction<br> - control word, status word, tag word, <br> - last FP instruction op code,<br> - instruction pointer,<br> - instruction pointer selector,<br> - data pointer,<br> - data pointer selector,<br> - registers <b>st/mm0</b> - <b>st/mm7</b> (10 bytes * 8)<br> - registers <b>xmm0</b> - <b>xmm7</b> (16 bytes * 8)<p><b>ARM</b>:<br> - currently, on this architecture, this routine does nothing.<p><b>SimSolaris</b>:<br> - register <b>fsr</b><br> - registers <b>f0</b> - <b>f31</b><p><b>SimNT</b>:<br> - this routine does nothing on Windows simulator. <p></blockquote><h4>RETURNS</h4><blockquote><p>N/A<p></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./fppArchLib.html#top">fppArchLib</a></b>, <b><a href="./fppArchLib.html#fppSave">fppSave</a>( )</b><hr><a name="fppProbe"></a><p align=right><a href="rtnIndex.htm"><i>OS Libraries : Routines</i></a></p></blockquote><h1>fppProbe( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>fppProbe( )</strong> - probe for the presence of a floating-point coprocessor</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>STATUS fppProbe (void)</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine determines whether there is afloating-point coprocessor in the system.<p>The implementation of this routine is architecture-dependent:<p><dl><dt><b>MC680x0</b>, <b>x86</b>, <b>SH-4</b>:<dd>This routine sets the illegal coprocessor opcode trap vector and executesa coprocessor instruction. If the instruction causes an exception,<b><a href="./fppArchLib.html#fppProbe">fppProbe</a>( )</b> returns ERROR. Note that this routine saves and restoresthe illegal coprocessor opcode trap vector that was there prior to thiscall.<p>The probe is only performed the first time this routine is called.The result is stored in a static and returned on subsequentcalls without actually probing.<p><dt><b>MIPS</b>:<dd>This routine simply reads the R-Series status register and reportsthe bit that indicates whether coprocessor 1 is usable. This bitmust be correctly initialized in the BSP.<p><dt><b>ARM</b>:<dd>This routine currently returns ERROR to indicate no floating-point coprocessor support.<p><dt><b>SimNT</b>, <b>SimSolaris</b>:<dd>This routine currently returns OK.</dl></blockquote><h4>RETURNS</h4><blockquote><p><p>OK, or ERROR if there is no floating-point coprocessor.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./fppArchLib.html#top">fppArchLib</a></b><hr><a name="fppTaskRegsGet"></a><p align=right><a href="rtnIndex.htm"><i>OS Libraries : Routines</i></a></p></blockquote><h1>fppTaskRegsGet( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>fppTaskRegsGet( )</strong> - get the floating-point registers from a task TCB</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>STATUS fppTaskRegsGet ( int task, /* task to get info about */ FPREG_SET * pFpRegSet /* ptr to floating-point register set */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine copies a task's floating-point registers and/or statusregisters to the locations whose pointers are passed asparameters. The floating-point registers are copied intoan array containing all the registers.<p></blockquote><h4>NOTE</h4><blockquote><p>This routine only works well if <i>task</i> is not the calling task.If a task tries to discover its own registers, the values will be stale(that is, left over from the last task switch).<p></blockquote><h4>RETURNS</h4><blockquote><p>OK, or ERROR if there is no floating-pointsupport or there is an invalid state.<p></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./fppArchLib.html#top">fppArchLib</a></b>, <b><a href="./fppArchLib.html#fppTaskRegsSet">fppTaskRegsSet</a>( )</b><hr><a name="fppTaskRegsSet"></a><p align=right><a href="rtnIndex.htm"><i>OS Libraries : Routines</i></a></p></blockquote><h1>fppTaskRegsSet( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>fppTaskRegsSet( )</strong> - set the floating-point registers of a task</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>STATUS fppTaskRegsSet ( int task, /* task to set registers for */ FPREG_SET * pFpRegSet /* ptr to floating-point register set */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine loads the specified values into the TCB of a specified task.The register values are copied from the array at <i>pFpRegSet</i>.<p></blockquote><h4>RETURNS</h4><blockquote><p>OK, or ERROR if there is no floating-pointsupport or there is an invalid state.<p></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./fppArchLib.html#top">fppArchLib</a></b>, <b><a href="./fppArchLib.html#fppTaskRegsGet">fppTaskRegsGet</a>( )</b></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -