Changeset 53470 in vbox for trunk/src/VBox
- Timestamp:
- Dec 6, 2014 3:55:37 AM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 97200
- Location:
- trunk/src/VBox/Runtime/common/time
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/common/time/timesupA.asm
r44528 r53470 95 95 %include "timesupA.mac" 96 96 97 %undef ASYNC_GIP 98 %define INVARIANT_GIP 99 %ifdef IN_RC 100 %undef NEED_TRANSACTION_ID 101 %endif 102 %define rtTimeNanoTSInternalAsm RTTimeNanoTSLegacyInvariant 103 ;%include "timesupA.mac" 104 ;; @todo r=bird: later. 105 97 106 ; 98 107 ; Alternative implementation that employs lfence instead of cpuid. 99 108 ; 100 %undef ASYNC_GIP109 %undef INVARIANT_GIP 101 110 %define USE_LFENCE 102 111 %define NEED_TRANSACTION_ID … … 112 121 %include "timesupA.mac" 113 122 123 %undef ASYNC_GIP 124 %define INVARIANT_GIP 125 %define NEED_TRANSACTION_ID 126 %define rtTimeNanoTSInternalAsm RTTimeNanoTSLFenceInvariant 127 ;%include "timesupA.mac" 128 ;; @todo r=bird: later. 129 114 130 115 131 %endif ; !IN_GUEST -
trunk/src/VBox/Runtime/common/time/timesupA.mac
r53430 r53470 126 126 mov u32UpdateIntervalTSC, edx 127 127 rdtsc 128 SupTscDeltaApply edi ; Apply inter-cpu TSC-delta to have the normalized TSC value in edx:eax 128 ;; @todo r-bird: Deltas are only valid in INVARIANT mode according to SUPDrv.c macro. 129 ;; edi is pointing to aCpu[0] in INVARIANT and SYNC. Code does more harm than good atm => disabled. 130 ;; (Just drop the SUPTscDeltaApply macro btw.) Sketched what is needed for invariant in timesupA.asm, more work .cpp files in IPRT and VMM. 131 ; SUPTscDeltaApply edi ; Apply inter-cpu TSC-delta to have the normalized TSC value in edx:eax 129 132 mov ecx, [edi + SUPGIPCPU.u64NanoTS] 130 133 mov u64CurNanoTS, ecx … … 545 548 mov u32UpdateIntervalTSC, [pGipCPU + SUPGIPCPU.u32UpdateIntervalTSC] 546 549 rdtsc 547 SUPTscDeltaApply pGipCPU 550 ;; @todo r-bird: Deltas are only valid in INVARIANT mode according to SUPDrv.c macro. 551 ;; pGipCPU is pointing to aCpu[0] in INVARIANT and SYNC. Code is 32-bit, i.e. inefficient. Code does more harm than good atm => disabled. 552 ;; (Just drop the SUPTscDeltaApply macro btw.) Sketched what is needed for invariant in timesupA.asm, more work .cpp files in IPRT and VMM. 553 ; SUPTscDeltaApply pGipCPU 548 554 mov u64PrevNanoTS, [pData + RTTIMENANOTSDATA.pu64Prev] 549 555 mov u64PrevNanoTS, [u64PrevNanoTS]
Note:
See TracChangeset
for help on using the changeset viewer.