VirtualBox

Changeset 105441 in vbox


Ignore:
Timestamp:
Jul 23, 2024 10:55:43 AM (9 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
164098
Message:

include/{x86.h,armv8.h}: Some additional definitions for MXCSR and FPCR registers, bugref:10652

Location:
trunk/include/iprt
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/armv8.h

    r105399 r105441  
    23742374/** Bit 0 - Flush Inputs to Zero when FEAT_AFP is supported. */
    23752375#define ARMV8_FPCR_FIZ                                          RT_BIT_64(0)
     2376#define ARMV8_FPCR_FIZ_BIT                                      0
    23762377/** Bit 1 - Alternate Handling of floating-point numbers when FEAT_AFP is supported. */
    23772378#define ARMV8_FPCR_AH                                           RT_BIT_64(1)
     2379#define ARMV8_FPCR_AH_BIT                                       1
    23782380/** Bit 2 - Controls how the output elements other than the lowest element of the vector are determined for
    23792381 * Advanced SIMD scalar instructions, when FEAT_AFP is supported. */
    23802382#define ARMV8_FPCR_NEP                                          RT_BIT_64(2)
     2383#define ARMV8_FPCR_NEP_BIT                                      2
    23812384/* Bit 3 - 7 - Reserved.*/
    23822385/** Bit 8 - Invalid Operation floating-point exception trap enable. */
    23832386#define ARMV8_FPCR_IOE                                          RT_BIT_64(8)
     2387#define ARMV8_FPCR_IOE_BIT                                      8
    23842388/** Bit 9 - Divide by Zero floating-point exception trap enable. */
    23852389#define ARMV8_FPCR_DZE                                          RT_BIT_64(9)
     2390#define ARMV8_FPCR_DZE_BIT                                      9
    23862391/** Bit 10 - Overflow floating-point exception trap enable. */
    23872392#define ARMV8_FPCR_OFE                                          RT_BIT_64(10)
     2393#define ARMV8_FPCR_OFE_BIT                                      10
    23882394/** Bit 11 - Underflow floating-point exception trap enable. */
    23892395#define ARMV8_FPCR_UFE                                          RT_BIT_64(11)
     2396#define ARMV8_FPCR_UFE_BIT                                      11
    23902397/** Bit 12 - Inexact floating-point exception trap enable. */
    23912398#define ARMV8_FPCR_IXE                                          RT_BIT_64(12)
     2399#define ARMV8_FPCR_IXE_BIT                                      12
    23922400/** Bit 13 - Controls numeric behavior of BFloat16 dot productions calculations performed,
    23932401 * supported when FEAT_EBF16 is supported. */
    23942402#define ARMV8_FPCR_EBF                                          RT_BIT_64(13)
     2403#define ARMV8_FPCR_EBF_BIT                                      13
    23952404/* Bit 14 - Reserved */
    23962405/** Bit 15 - Input Denormal floating-point exception trap enable. */
    23972406#define ARMV8_FPCR_IDE                                          RT_BIT_64(15)
     2407#define ARMV8_FPCR_IDE_BIT                                      15
    23982408/* Bit 16 - 18 - Reserved for AArch64 (Len field for AArch32). */
    23992409/** Bit 19 - Flushing denormalized numbers to zero control bit on half-precision data-processing instructions,
    24002410 * available when FEAT_FP16 is supported. */
    24012411#define ARMV8_FPCR_FZ16                                         RT_BIT_64(19)
     2412#define ARMV8_FPCR_FZ16_BIT                                       19
    24022413/* Bit 20 - 21 - Reserved for AArch64 (Stride field dor AArch32). */
    24032414/** Bit 22 - 23 - Rounding Mode control field. */
     
    24142425/** Bit 24 - Flushing denormalized numbers to zero control bit. */
    24152426#define ARMV8_FPCR_FZ                                           RT_BIT_64(24)
     2427#define ARMV8_FPCR_FZ_BIT                                       24
    24162428/** Bit 25 - Default NaN use for NaN propagation. */
    24172429#define ARMV8_FPCR_DN                                           RT_BIT_64(25)
     2430#define ARMV8_FPCR_DN_BIT                                       25
    24182431/** Bit 26 - Alternative half-precision control bit. */
    24192432#define ARMV8_FPCR_AHP                                          RT_BIT_64(26)
     2433#define ARMV8_FPCR_AHP_BIT                                      26
    24202434/* Bit 27 - 63 - Reserved. */
    24212435/** @} */
  • trunk/include/iprt/x86.h

    r105257 r105441  
    38433843/** Exception Flag: Invalid operation.  */
    38443844#define X86_MXCSR_IE          RT_BIT_32(0)
     3845#define X86_MXCSR_IE_BIT      0
    38453846/** Exception Flag: Denormalized operand.  */
    38463847#define X86_MXCSR_DE          RT_BIT_32(1)
     3848#define X86_MXCSR_DE_BIT      1
    38473849/** Exception Flag: Zero divide.  */
    38483850#define X86_MXCSR_ZE          RT_BIT_32(2)
     3851#define X86_MXCSR_ZE_BIT      2
    38493852/** Exception Flag: Overflow.  */
    38503853#define X86_MXCSR_OE          RT_BIT_32(3)
     3854#define X86_MXCSR_OE_BIT      3
    38513855/** Exception Flag: Underflow.  */
    38523856#define X86_MXCSR_UE          RT_BIT_32(4)
     3857#define X86_MXCSR_EU_BIT      4
    38533858/** Exception Flag: Precision.  */
    38543859#define X86_MXCSR_PE          RT_BIT_32(5)
     3860#define X86_MXCSR_PE_BIT      5
    38553861/** Exception Flags: mask */
    38563862#define X86_MXCSR_XCPT_FLAGS  UINT32_C(0x003f)
     
    38583864/** Denormals are zero. */
    38593865#define X86_MXCSR_DAZ         RT_BIT_32(6)
     3866#define X86_MXCSR_DAZ_BIT     6
    38603867
    38613868/** Exception Mask: Invalid operation. */
    38623869#define X86_MXCSR_IM          RT_BIT_32(7)
     3870#define X86_MXCSR_IM_BIT      7
    38633871/** Exception Mask: Denormalized operand. */
    38643872#define X86_MXCSR_DM          RT_BIT_32(8)
     3873#define X86_MXCSR_DM_BIT      8
    38653874/** Exception Mask: Zero divide.  */
    38663875#define X86_MXCSR_ZM          RT_BIT_32(9)
     3876#define X86_MXCSR_ZM_BIT      9
    38673877/** Exception Mask: Overflow.  */
    38683878#define X86_MXCSR_OM          RT_BIT_32(10)
     3879#define X86_MXCSR_OM_BIT      10
    38693880/** Exception Mask: Underflow.  */
    38703881#define X86_MXCSR_UM          RT_BIT_32(11)
     3882#define X86_MXCSR_UM_BIT      11
    38713883/** Exception Mask: Precision.  */
    38723884#define X86_MXCSR_PM          RT_BIT_32(12)
     3885#define X86_MXCSR_PM_BIT      12
    38733886/** Exception Mask: mask.  */
    38743887#define X86_MXCSR_XCPT_MASK   UINT32_C(0x1f80)
     
    38913904/** Flush-to-zero for masked underflow.  */
    38923905#define X86_MXCSR_FZ          RT_BIT_32(15)
     3906#define X86_MXCSR_FZ_BIT      15
    38933907
    38943908/** Misaligned Exception Mask (AMD MISALIGNSSE).  */
    38953909#define X86_MXCSR_MM          RT_BIT_32(17)
     3910#define X86_MXCSR_MM_BIT      17
    38963911/** Bits which should be zero, apparently. */
    38973912#define X86_MXCSR_ZERO_MASK   UINT32_C(0xfffd0000)
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette