mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-26 05:25:47 +00:00
Initial implementation of the TimeValue abstraction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16511 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
53
lib/System/TimeValue.cpp
Normal file
53
lib/System/TimeValue.cpp
Normal file
@@ -0,0 +1,53 @@
|
||||
//===-- TimeValue.cpp - Implement OS TimeValue Concept ----------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file was developed by Reid Spencer and is distributed under the
|
||||
// University of Illinois Open Source License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file implements the operating system TimeValue concept.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <llvm/System/TimeValue.h>
|
||||
|
||||
namespace llvm {
|
||||
using namespace sys;
|
||||
|
||||
const TimeValue TimeValue::MinTime = TimeValue ( INT64_MIN,0 );
|
||||
const TimeValue TimeValue::MaxTime = TimeValue ( INT64_MAX,0 );
|
||||
const TimeValue TimeValue::ZeroTime = TimeValue ( 0,0 );
|
||||
const TimeValue TimeValue::PosixZeroTime = TimeValue ( -946684800,0 );
|
||||
const TimeValue TimeValue::Win32ZeroTime = TimeValue ( -12591158400ULL,0 );
|
||||
|
||||
void
|
||||
TimeValue::normalize( void ) {
|
||||
if ( nanos_ >= NANOSECONDS_PER_SECOND ) {
|
||||
do {
|
||||
seconds_++;
|
||||
nanos_ -= NANOSECONDS_PER_SECOND;
|
||||
} while ( nanos_ >= NANOSECONDS_PER_SECOND );
|
||||
} else if (nanos_ <= -NANOSECONDS_PER_SECOND ) {
|
||||
do {
|
||||
seconds_--;
|
||||
nanos_ += NANOSECONDS_PER_SECOND;
|
||||
} while (nanos_ <= -NANOSECONDS_PER_SECOND);
|
||||
}
|
||||
|
||||
if (seconds_ >= 1 && nanos_ < 0) {
|
||||
seconds_--;
|
||||
nanos_ += NANOSECONDS_PER_SECOND;
|
||||
} else if (seconds_ < 0 && nanos_ > 0) {
|
||||
seconds_++;
|
||||
nanos_ -= NANOSECONDS_PER_SECOND;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// Include the platform specific portion of TimeValue class
|
||||
#include "platform/TimeValue.cpp"
|
||||
|
||||
// vim: sw=2 smartindent smarttab tw=80 autoindent expandtab
|
Reference in New Issue
Block a user