gem5/src/arch/x86
Andreas Hansson 0cacf7e817 Clock: Add a Cycles wrapper class and use where applicable
This patch addresses the comments and feedback on the preceding patch
that reworks the clocks and now more clearly shows where cycles
(relative cycle counts) are used to express time.

Instead of bumping the existing patch I chose to make this a separate
patch, merely to try and focus the discussion around a smaller set of
changes. The two patches will be pushed together though.

This changes done as part of this patch are mostly following directly
from the introduction of the wrapper class, and change enough code to
make things compile and run again. There are definitely more places
where int/uint/Tick is still used to represent cycles, and it will
take some time to chase them all down. Similarly, a lot of parameters
should be changed from Param.Tick and Param.Unsigned to
Param.Cycles.

In addition, the use of curTick is questionable as there should not be
an absolute cycle. Potential solutions can be built on top of this
patch. There is a similar situation in the o3 CPU where
lastRunningCycle is currently counting in Cycles, and is still an
absolute time. More discussion to be had in other words.

An additional change that would be appropriate in the future is to
perform a similar wrapping of Tick and probably also introduce a
Ticks class along with suitable operators for all these classes.
2012-08-28 14:30:33 -04:00
..
bios gcc: Clean-up of non-C++0x compliant code, first steps 2012-03-19 06:36:09 -04:00
insts ISA: Put parser generated files in a "generated" directory. 2012-04-23 12:00:41 -07:00
isa X86: Ensure that the CPUID instruction always writes its outputs. 2012-06-04 10:43:09 -07:00
linux sysemul: bump all linux versions of for syscal emulation to 3.0. 2012-08-15 10:38:04 -04:00
regs X86: Split Condition Code register 2012-05-22 11:29:53 -05:00
cpuid.cc X86 CPUID: Return false if unknown processor family 2012-07-22 20:31:23 -05:00
cpuid.hh X86: Sometimes CPUID depends on ecx, so pass that in. 2010-05-02 00:40:17 -07:00
decoder.cc ISA,CPU: Generalize and split out the components of the decode cache. 2012-05-26 13:45:12 -07:00
decoder.hh X86: Ensure that the decoder's internal ExtMachInst is completely initialized. 2012-06-04 10:43:08 -07:00
decoder_tables.cc CPU: Merge the predecoder and decoder. 2012-05-26 13:44:46 -07:00
emulenv.cc CPU: Merge the predecoder and decoder. 2012-05-26 13:44:46 -07:00
emulenv.hh gcc: Clean-up of non-C++0x compliant code, first steps 2012-03-19 06:36:09 -04:00
faults.cc ISA: Put parser generated files in a "generated" directory. 2012-04-23 12:00:41 -07:00
faults.hh gcc: Clean-up of non-C++0x compliant code, first steps 2012-03-19 06:36:09 -04:00
interrupts.cc Clock: Move the clock and related functions to ClockedObject 2012-08-21 05:49:01 -04:00
interrupts.hh Clock: Move the clock and related functions to ClockedObject 2012-08-21 05:49:01 -04:00
intmessage.hh MEM: Remove the Broadcast destination from the packet 2012-04-14 05:45:55 -04:00
isa.cc x86: minor checkpointing bug fixes 2010-08-17 05:20:39 -07:00
isa.hh includes: sort all includes 2011-04-15 10:44:06 -07:00
isa_traits.hh ISA: Back-out NoopMachInst as a StaticInstPtr change. 2012-06-05 13:52:30 -04:00
kernel_stats.hh copyright: Change HP copyright on x86 code to be more friendly 2010-05-23 22:44:15 -07:00
locked_mem.hh gcc: Clean-up of non-C++0x compliant code, first steps 2012-03-19 06:36:09 -04:00
memhelpers.hh ExecContext: Rename the readBytes/writeBytes functions to readMem and writeMem. 2011-07-02 22:35:04 -07:00
microcode_rom.hh includes: sort all includes 2011-04-15 10:44:06 -07:00
mmapped_ipr.hh Clock: Add a Cycles wrapper class and use where applicable 2012-08-28 14:30:33 -04:00
nativetrace.cc gcc: Clean-up of non-C++0x compliant code, first steps 2012-03-19 06:36:09 -04:00
nativetrace.hh Make commenting on close namespace brackets consistent. 2011-01-03 14:35:43 -08:00
pagetable.cc x86: logSize and lruSeq are now optional ckpt params 2012-07-10 22:51:54 -07:00
pagetable.hh x86: added page size in bytes tlb entry function 2012-07-11 12:21:04 -07:00
pagetable_walker.cc Packet: Remove NACKs from packet and its use in endpoints 2012-08-22 11:39:59 -04:00
pagetable_walker.hh sim: Remove FastAlloc 2012-06-05 01:23:08 -04:00
process.cc X86: Move the GDT down to where it can be accessed in 32 bit mode. 2012-05-27 19:01:08 -07:00
process.hh includes: sort all includes 2011-04-15 10:44:06 -07:00
registers.hh O3: Clean up the O3 structures and try to pack them a bit better. 2012-06-05 01:23:09 -04:00
remote_gdb.cc X86: Get rid of more uses of FULL_SYSTEM. 2011-10-30 00:33:02 -07:00
remote_gdb.hh copyright: Change HP copyright on x86 code to be more friendly 2010-05-23 22:44:15 -07:00
SConscript ISA: Back-out NoopMachInst as a StaticInstPtr change. 2012-06-05 13:52:30 -04:00
SConsopts copyright: This file need not have had the more restrictive copyright. 2009-02-09 20:10:15 -08:00
stacktrace.cc MEM: Make port proxies use references rather than pointers 2012-02-24 11:45:30 -05:00
stacktrace.hh trace: reimplement the DTRACE function so it doesn't use a vector 2011-04-15 10:44:32 -07:00
system.cc X86: Report an error if there's no kernel object, don't blindly use it. 2012-04-21 15:00:23 -07:00
system.hh sim: revamp unserialization procedure 2010-08-17 05:17:06 -07:00
tlb.cc X86 TLB: Add a missing = sign 2012-06-07 17:03:45 -05:00
tlb.hh X86: Use the AddrTrie class to implement the TLB. 2012-04-14 23:24:18 -07:00
types.cc X86: Change the copyright holder to AMD. 2010-08-27 15:35:36 -07:00
types.hh CPU: Merge the predecoder and decoder. 2012-05-26 13:44:46 -07:00
utility.cc Clock: Add a Cycles wrapper class and use where applicable 2012-08-28 14:30:33 -04:00
utility.hh gcc: Clean-up of non-C++0x compliant code, first steps 2012-03-19 06:36:09 -04:00
vtophys.cc X86: Use the AddrTrie class to implement the TLB. 2012-04-14 23:24:18 -07:00
vtophys.hh gcc: Clean-up of non-C++0x compliant code, first steps 2012-03-19 06:36:09 -04:00
x86_traits.hh ISA: Back-out NoopMachInst as a StaticInstPtr change. 2012-06-05 13:52:30 -04:00
X86LocalApic.py Device: Remove overloaded pio_latency parameter 2012-08-21 05:50:03 -04:00
X86NativeTrace.py CPU: Separate out native trace into ISA (in)dependent code and SimObjects. 2009-07-19 23:54:56 -07:00
X86System.py Loader: Make the load address mask be a parameter of the system rather than a constant. 2010-08-23 11:18:39 -05:00
X86TLB.py MEM: Introduce the master/slave port roles in the Python classes 2012-02-13 06:43:09 -05:00