Changeset 59932 in vbox for trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit.h
- Timestamp:
- Mar 4, 2016 4:01:18 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit.h
r59895 r59932 455 455 # define BS3_DATA_NM(a_Name) a_Name 456 456 #endif 457 458 /** @def BS3_MSC64_FIXUP_HACK459 * Used to avoid IMAGE_REL_AMD64_ADDR32NB fixups where the compiler tries to460 * make use of __ImageBase as a base pointer instead of emitting rip relative461 * accesses. Happens when there are a bunch of global data accesses in the same462 * function, probably to save space.463 *464 * The volatile variable in the lambda fixes it.465 */466 #if _MSC_VER && ARCH_BITS == 64467 # define BS3_MSC64_FIXUP_HACK(a_BaseType, a_Data) \468 ([]() -> a_BaseType * \469 { \470 a_BaseType * volatile x = a_Data; \471 return x; \472 }())473 474 #else475 # define BS3_MSC64_FIXUP_HACK(a_BaseType, a_Data) (a_Data)476 #endif477 478 457 479 458 /**
Note:
See TracChangeset
for help on using the changeset viewer.