Changeset 54892 in vbox
- Timestamp:
- Mar 21, 2015 6:01:12 PM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 99107
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/x86.h
r54887 r54892 2495 2495 * @{ */ 2496 2496 /** Exception Flag: Invalid operation. */ 2497 #define X86_M SXCR_IE RT_BIT(0)2497 #define X86_MXSCR_IE RT_BIT(0) 2498 2498 /** Exception Flag: Denormalized operand. */ 2499 #define X86_M SXCR_DE RT_BIT(1)2499 #define X86_MXSCR_DE RT_BIT(1) 2500 2500 /** Exception Flag: Zero divide. */ 2501 #define X86_M SXCR_ZE RT_BIT(2)2501 #define X86_MXSCR_ZE RT_BIT(2) 2502 2502 /** Exception Flag: Overflow. */ 2503 #define X86_M SXCR_OE RT_BIT(3)2503 #define X86_MXSCR_OE RT_BIT(3) 2504 2504 /** Exception Flag: Underflow. */ 2505 #define X86_M SXCR_UE RT_BIT(4)2505 #define X86_MXSCR_UE RT_BIT(4) 2506 2506 /** Exception Flag: Precision. */ 2507 #define X86_M SXCR_PE RT_BIT(5)2507 #define X86_MXSCR_PE RT_BIT(5) 2508 2508 2509 2509 /** Denormals are zero. */ 2510 #define X86_M SXCR_DAZ RT_BIT(6)2510 #define X86_MXSCR_DAZ RT_BIT(6) 2511 2511 2512 2512 /** Exception Mask: Invalid operation. */ 2513 #define X86_M SXCR_IM RT_BIT(7)2513 #define X86_MXSCR_IM RT_BIT(7) 2514 2514 /** Exception Mask: Denormalized operand. */ 2515 #define X86_M SXCR_DM RT_BIT(8)2515 #define X86_MXSCR_DM RT_BIT(8) 2516 2516 /** Exception Mask: Zero divide. */ 2517 #define X86_M SXCR_ZM RT_BIT(9)2517 #define X86_MXSCR_ZM RT_BIT(9) 2518 2518 /** Exception Mask: Overflow. */ 2519 #define X86_M SXCR_OM RT_BIT(10)2519 #define X86_MXSCR_OM RT_BIT(10) 2520 2520 /** Exception Mask: Underflow. */ 2521 #define X86_M SXCR_UM RT_BIT(11)2521 #define X86_MXSCR_UM RT_BIT(11) 2522 2522 /** Exception Mask: Precision. */ 2523 #define X86_M SXCR_PM RT_BIT(12)2523 #define X86_MXSCR_PM RT_BIT(12) 2524 2524 2525 2525 /** Rounding control mask. */ 2526 #define X86_M SXCR_RC_MASK UINT16_C(0x6000)2526 #define X86_MXSCR_RC_MASK UINT16_C(0x6000) 2527 2527 /** Rounding control: To nearest. */ 2528 #define X86_M SXCR_RC_NEAREST UINT16_C(0x0000)2528 #define X86_MXSCR_RC_NEAREST UINT16_C(0x0000) 2529 2529 /** Rounding control: Down. */ 2530 #define X86_M SXCR_RC_DOWN UINT16_C(0x2000)2530 #define X86_MXSCR_RC_DOWN UINT16_C(0x2000) 2531 2531 /** Rounding control: Up. */ 2532 #define X86_M SXCR_RC_UP UINT16_C(0x4000)2532 #define X86_MXSCR_RC_UP UINT16_C(0x4000) 2533 2533 /** Rounding control: Towards zero. */ 2534 #define X86_M SXCR_RC_ZERO UINT16_C(0x6000)2534 #define X86_MXSCR_RC_ZERO UINT16_C(0x6000) 2535 2535 2536 2536 /** Flush-to-zero for masked underflow. */ 2537 #define X86_M SXCR_FZ RT_BIT(15)2537 #define X86_MXSCR_FZ RT_BIT(15) 2538 2538 2539 2539 /** Misaligned Exception Mask. */ 2540 #define X86_M SXCR_MM RT_BIT(16)2540 #define X86_MXSCR_MM RT_BIT(16) 2541 2541 /** @} */ 2542 2542 -
trunk/include/iprt/x86.mac
r54862 r54892 628 628 %define X86_FCW_RC_ZERO 0x0c00 629 629 %define X86_FCW_ZERO_MASK 0xf080 630 %define X86_M SXCR_IE RT_BIT(0)631 %define X86_M SXCR_DE RT_BIT(1)632 %define X86_M SXCR_ZE RT_BIT(2)633 %define X86_M SXCR_OE RT_BIT(3)634 %define X86_M SXCR_UE RT_BIT(4)635 %define X86_M SXCR_PE RT_BIT(5)636 %define X86_M SXCR_DAZ RT_BIT(6)637 %define X86_M SXCR_IM RT_BIT(7)638 %define X86_M SXCR_DM RT_BIT(8)639 %define X86_M SXCR_ZM RT_BIT(9)640 %define X86_M SXCR_OM RT_BIT(10)641 %define X86_M SXCR_UM RT_BIT(11)642 %define X86_M SXCR_PM RT_BIT(12)643 %define X86_M SXCR_RC_MASK 0x6000644 %define X86_M SXCR_RC_NEAREST 0x0000645 %define X86_M SXCR_RC_DOWN 0x2000646 %define X86_M SXCR_RC_UP 0x4000647 %define X86_M SXCR_RC_ZERO 0x6000648 %define X86_M SXCR_FZ RT_BIT(15)649 %define X86_M SXCR_MM RT_BIT(16)630 %define X86_MXSCR_IE RT_BIT(0) 631 %define X86_MXSCR_DE RT_BIT(1) 632 %define X86_MXSCR_ZE RT_BIT(2) 633 %define X86_MXSCR_OE RT_BIT(3) 634 %define X86_MXSCR_UE RT_BIT(4) 635 %define X86_MXSCR_PE RT_BIT(5) 636 %define X86_MXSCR_DAZ RT_BIT(6) 637 %define X86_MXSCR_IM RT_BIT(7) 638 %define X86_MXSCR_DM RT_BIT(8) 639 %define X86_MXSCR_ZM RT_BIT(9) 640 %define X86_MXSCR_OM RT_BIT(10) 641 %define X86_MXSCR_UM RT_BIT(11) 642 %define X86_MXSCR_PM RT_BIT(12) 643 %define X86_MXSCR_RC_MASK 0x6000 644 %define X86_MXSCR_RC_NEAREST 0x0000 645 %define X86_MXSCR_RC_DOWN 0x2000 646 %define X86_MXSCR_RC_UP 0x4000 647 %define X86_MXSCR_RC_ZERO 0x6000 648 %define X86_MXSCR_FZ RT_BIT(15) 649 %define X86_MXSCR_MM RT_BIT(16) 650 650 %ifndef VBOX_FOR_DTRACE_LIB 651 651 %endif -
trunk/src/VBox/VMM/VMMAll/IEMAll.cpp
r54862 r54892 7172 7172 /* The lazy approach for now... */ 7173 7173 /** @todo testcase: Ordering of \#SS(0) vs \#GP() vs \#PF on SSE stuff. */ 7174 if ((GCPtrMem & 15) && !(pIemCpu->CTX_SUFF(pCtx)->fpu.MXCSR & X86_M SXCR_MM)) /** @todo should probably check this *after* applying seg.u64Base... Check real HW. */7174 if ((GCPtrMem & 15) && !(pIemCpu->CTX_SUFF(pCtx)->fpu.MXCSR & X86_MXSCR_MM)) /** @todo should probably check this *after* applying seg.u64Base... Check real HW. */ 7175 7175 return iemRaiseGeneralProtectionFault0(pIemCpu); 7176 7176 … … 7372 7372 { 7373 7373 /* The lazy approach for now... */ 7374 if ((GCPtrMem & 15) && !(pIemCpu->CTX_SUFF(pCtx)->fpu.MXCSR & X86_M SXCR_MM)) /** @todo should probably check this *after* applying seg.u64Base... Check real HW. */7374 if ((GCPtrMem & 15) && !(pIemCpu->CTX_SUFF(pCtx)->fpu.MXCSR & X86_MXSCR_MM)) /** @todo should probably check this *after* applying seg.u64Base... Check real HW. */ 7375 7375 return iemRaiseGeneralProtectionFault0(pIemCpu); 7376 7376
Note:
See TracChangeset
for help on using the changeset viewer.