-#define RNT_INFO _rtc_nanotime_info
-#define NANOTIME \
-0: movl RNT_INFO+RNT_TSC_BASE,%esi ; \
- movl RNT_INFO+RNT_TSC_BASE+4,%edi ; \
- rdtsc ; \
- subl %esi,%eax /* tsc - tsc_base */ ; \
- sbbl %edi,%edx ; \
- movl RNT_INFO+RNT_SCALE,%ecx ; \
- movl %edx,%ebx /* delta * scale */ ; \
- mull %ecx ; \
- movl %ebx,%eax ; \
- movl %edx,%ebx ; \
- mull %ecx ; \
- addl %ebx,%eax ; \
- adcl $0,%edx /* add carry into hi */ ; \
- addl RNT_INFO+RNT_NS_BASE,%eax /* add ns_base lo */ ; \
- adcl RNT_INFO+RNT_NS_BASE+4,%edx /* add ns_base hi */ ; \
- cmpl RNT_INFO+RNT_TSC_BASE,%esi ; \
- jne 0b /* repeat if changed */ ; \
- cmpl RNT_INFO+RNT_TSC_BASE+4,%edi ; \
- jne 0b
+#define NANOTIME \
+ mov %gs:CPU_NANOTIME,%edi ; \
+ RTC_NANOTIME_READ_FAST()
+