VirtualBox

Changeset 96817 in vbox


Ignore:
Timestamp:
Sep 21, 2022 9:40:06 PM (2 years ago)
Author:
vboxsync
Message:

IPRT,VBoxGuest,SUPDrv: RTLogWriteVmm build fixes and optimizations of inline assembly for non-PIC/PIE i386.

Location:
trunk/src/VBox
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/common/VBoxGuest/linux/combined-agnostic.c

    r96407 r96817  
    171171#undef LOG_GROUP
    172172#include "VBox/logbackdoor.c"
     173#undef LOG_GROUP
     174#include "VBox/RTLogWriteVmm-amd64-x86.c"
    173175
    174176#ifdef RT_ARCH_AMD64
  • trunk/src/VBox/HostDrivers/Support/linux/combined-agnostic2.c

    r96407 r96817  
    107107#undef LOG_GROUP
    108108#include "VBox/log-vbox.c"
     109#undef LOG_GROUP
     110#include "VBox/RTLogWriteVmm-amd64-x86.c"
    109111
    110112#ifdef RT_ARCH_AMD64
  • trunk/src/VBox/Runtime/VBox/RTLogWriteVmm-amd64-x86.cpp

    r96814 r96817  
    4747RTDECL(void) RTLogWriteVmm(const char *pach, size_t cb, bool fRelease)
    4848{
    49 #  ifdef RT_ARCH_AMD64
    50     RTCCUINTREG uRAX, uRBX, uRCX, uRDX, uRSI;
    51     __asm__ __volatile__ ("cpuid\n\t"
    52                           : "=a" (uRAX)
    53                           , "=b" (uRBX)
    54                           , "=c" (uRCX)
    55                           , "=d" (uRDX)
    56                           , "=S" (uRSI)
    57                           : "0" (VBOX_CPUID_REQ_EAX_FIXED)
    58                           , "1" ((uint32_t)fRelease)
    59                           , "2" (VBOX_CPUID_REQ_ECX_FIXED | VBOX_CPUID_FN_LOG)
    60                           , "3" (cb)
    61                           , "4" (pach));
    62 #  else
    6349    RTCCUINTREG uEAX, uEBX, uECX, uEDX, uESI;
     50#if (defined(PIC) || defined(__PIC__)) && defined(__i386__)
    6451    __asm__ __volatile__ ("xchgl %%ebx, %1\n\t"
    6552                          "cpuid\n\t"
     
    7562                         , "3" (cb)
    7663                         , "4" (pach));
    77 #  endif
     64#else
     65    __asm__ __volatile__ ("cpuid\n\t"
     66                          : "=a" (uEAX)
     67                          , "=b" (uEBX)
     68                          , "=c" (uECX)
     69                          , "=d" (uEDX)
     70                          , "=S" (uESI)
     71                          : "0" (VBOX_CPUID_REQ_EAX_FIXED)
     72                          , "1" ((uint32_t)fRelease)
     73                          , "2" (VBOX_CPUID_REQ_ECX_FIXED | VBOX_CPUID_FN_LOG)
     74                          , "3" (cb)
     75                          , "4" (pach));
     76#endif
    7877}
    7978RT_EXPORT_SYMBOL(RTLogWriteVmm);
Note: See TracChangeset for help on using the changeset viewer.

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