| /* |
| * QEMU Alpha clock helpers. |
| * |
| * Copyright (c) 2007 Jocelyn Mayer |
| * |
| * SPDX-License-Identifier: LGPL-2.1-or-later |
| */ |
| |
| #include "qemu/osdep.h" |
| #include "qemu/timer.h" |
| #include "exec/helper-proto.h" |
| #include "cpu.h" |
| |
| uint64_t helper_load_pcc(CPUAlphaState *env) |
| { |
| #ifndef CONFIG_USER_ONLY |
| /* |
| * In system mode we have access to a decent high-resolution clock. |
| * In order to make OS-level time accounting work with the RPCC, |
| * present it with a well-timed clock fixed at 250MHz. |
| */ |
| return (((uint64_t)env->pcc_ofs << 32) |
| | (uint32_t)(qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) >> 2)); |
| #else |
| /* |
| * In user-mode, QEMU_CLOCK_VIRTUAL doesn't exist. Just pass through |
| * the host cpu clock ticks. Also, don't bother taking PCC_OFS into |
| * account. |
| */ |
| return (uint32_t)cpu_get_host_ticks(); |
| #endif |
| } |