Index: third_party/crashpad/crashpad/minidump/minidump_context.h |
diff --git a/third_party/crashpad/crashpad/minidump/minidump_context.h b/third_party/crashpad/crashpad/minidump/minidump_context.h |
index 4eb3acfa3cd13aff48502cc4483e70ad6c0c41d1..b71b57ccd1a5f033dcc3c27149c84953f453984e 100644 |
--- a/third_party/crashpad/crashpad/minidump/minidump_context.h |
+++ b/third_party/crashpad/crashpad/minidump/minidump_context.h |
@@ -92,7 +92,8 @@ enum MinidumpContextX86Flags : uint32_t { |
//! \brief Indicates the validity of floating-point state |
//! (`CONTEXT_FLOATING_POINT`). |
//! |
- //! The `float_save` field is valid. |
+ //! The `fsave` field is valid. The `float_save` field is included in this |
+ //! definition, but its members have no practical use asdie from `fsave`. |
kMinidumpContextX86FloatingPoint = kMinidumpContextX86 | 0x00000008, |
//! \brief Indicates the validity of debug registers |
@@ -130,8 +131,9 @@ enum MinidumpContextX86Flags : uint32_t { |
//! \brief A 32-bit x86 CPU context (register state) carried in a minidump file. |
//! |
//! This is analogous to the `CONTEXT` structure on Windows when targeting |
-//! 32-bit x86. This structure is used instead of `CONTEXT` to make it available |
-//! when targeting other architectures. |
+//! 32-bit x86, and the `WOW64_CONTEXT` structure when targeting an x86-family |
+//! CPU, either 32- or 64-bit. This structure is used instead of `CONTEXT` or |
+//! `WOW64_CONTEXT` to make it available when targeting other architectures. |
//! |
//! \note This structure doesn’t carry `dr4` or `dr5`, which are obsolete and |
//! normally alias `dr6` and `dr7`, respectively. See Intel Software |
@@ -152,16 +154,12 @@ struct MinidumpContextX86 { |
uint32_t dr6; |
uint32_t dr7; |
- struct { |
- uint32_t control_word; |
- uint32_t status_word; |
- uint32_t tag_word; |
- uint32_t error_offset; |
- uint32_t error_selector; |
- uint32_t data_offset; |
- uint32_t data_selector; |
- uint8_t register_area[80]; |
- uint32_t spare_0; |
+ // CPUContextX86::Fsave has identical layout to what the x86 CONTEXT |
+ // structure places here. |
+ CPUContextX86::Fsave fsave; |
+ union { |
+ uint32_t spare_0; // As in the native x86 CONTEXT structure since Windows 8 |
+ uint32_t cr0_npx_state; // As in WOW64_CONTEXT and older SDKs’ x86 CONTEXT |
} float_save; |
uint32_t gs; |