- movl _TIMESTAMP(%r10),%r8d // get _COMM_PAGE_TIMESTAMP
- cmpq _TIMEBASE(%r10),%r11 // has _COMM_PAGE_TIMEBASE changed?
- jne 0b // loop until we have consistent data
- cmpl $0,_TIMEENABLE(%r10) // is data valid? (test _COMM_PAGE_TIMEENABLE)
- jz 4f // no
+
+ movl _GTOD_SEC_BASE(%r10),%r8d // get _COMM_PAGE_TIMESTAMP
+ subq _GTOD_NS_BASE(%r10),%rax // generate nanoseconds since timestamp
+ cmpl _GTOD_GENERATION(%r10),%r11d // has data changed out from under us?
+ jne 0b