summaryrefslogtreecommitdiff
path: root/sim
AgeCommit message (Collapse)Author
2004-05-25Varied fixes to get linux running. Allow for shutdown on linux.Andrew Schultz
dev/ide_disk.cc: Fix to PIO writes and also add command needed for shutdown dev/pcidev.cc: Change the panic on write to read-only registers to a debug print. The kernel tries to write back over all of the PCI registers to restore the saved SRM state, so we need to let it do this without panicing. sim/system.cc: Add back increment of number of running systems to allow trap of halt work correctly. --HG-- extra : convert_revision : 84aba4effbec14545f3610c19a8e321d7e7f7cf2
2004-05-21rename namespace Statistics to StatsNathan Binkert
--HG-- extra : convert_revision : 28f1703f8d7d8cf33fb952ae450f66bdba860fb7
2004-05-18merge m5 with linux for the event and binning liftingLisa Hsu
--HG-- extra : convert_revision : 09d3678746c2e9a93a9982dc75d5e1ac309cb2fa
2004-05-17lift system-independent binning stuff out of Tru64System into System.Lisa Hsu
kern/tru64/tru64_system.cc: make binned_fns a parameter for System in addition to Tru64System. Do all the fnEvents setting at the System level, since that is system-independent. kern/tru64/tru64_system.hh: deal with FnEvents in the System, and move some fns over to System. sim/system.cc: sim/system.hh: lift binning stuff into System out of Tru64System --HG-- extra : convert_revision : 591dee6f2013f5c43037726c529a00682b5cf82e
2004-05-13Avoid sending a signal to ourselves if we're not debuggingNathan Binkert
--HG-- extra : convert_revision : d6ba1ce30bad4a44d716238a8107c3bff0ce89c4
2004-05-12Make a new stat type of Value which is a scalar stat thatNathan Binkert
proxies for a real C/C++ scalar value or scalar functor. This replaces the scalar() and functor() terms that were previously used in formulas. This helps when dumping statistics because the formulas are not supposed to change. cpu/base_cpu.cc: Add a number of cycles stat to the cpu object that tracks the number of cycles that the cpu has executed. This starts to pave the way for cpu cycles being different from event ticks. cpu/base_cpu.hh: provide a functor for calculating all simulated instructions of all CPUs and a virtual function for determining that number. To deal with the change from functor() to Value::functor() cpu/simple_cpu/simple_cpu.cc: simTicks -> numCycles numInsts is now a real Scalar stat, not a Formula cpu/simple_cpu/simple_cpu.hh: numInsts is now a real Scalar stat, not a Formula count all instructions sim/stat_control.cc: simInsts, simTicks, hostMemory, and hostSeconds are no longer Statistics::Formula but rather Statistics::Value add new stat for tick frequency sim/stats.hh: don't need everything to be extern. test/Makefile: Make stuff work a tad bit better test/stattest.cc: test out Statistics::Value --HG-- extra : convert_revision : c812e8baa2b17c08abf3a68ed1e1125dc6f2cfb4
2004-05-11first pass at merging m5 with linuxLisa Hsu
--HG-- extra : convert_revision : dfe23349b80ae3b34d3cb95c5734e01ef62f700e
2004-05-04Major stats package cleanupNathan Binkert
Add support for generic visitors for stats and use them to implement independent output functions. Support for mysql output and some initial code for hacking on mysql output with python arch/alpha/pseudo_inst.cc: base/hybrid_pred.cc: base/hybrid_pred.hh: base/sat_counter.cc: base/sat_counter.hh: cpu/simple_cpu/simple_cpu.cc: kern/tru64/tru64_events.cc: sim/main.cc: sim/process.cc: sim/process.hh: sim/sim_events.cc: sim/sim_object.cc: sim/system.hh: update for changes in stats package base/statistics.cc: move the python output code to base/stats/puthon.(cc|hh) and reimplement it as a visitor. move the text output code to base/stats/text.(cc|hh) and reimplement it as a visitor. move the database stuff into base/stats/statdb.(cc|hh) and get rid of the class. Put everything as globals in the Statistics::Database namespace. allocate unique ids for all stats. directly implement the check routine and get rid of the various dumping routines since they're now in separate files. make sure that no two stats have the same name clean up some loops base/statistics.hh: major changes to the statistics package again lots of code was factored out of statistics.hh into several separate files in base/stats/ (this will continue) There are now two Stat package types Result and Counter that are specified to allow the user to keep the counted type separate from the result type. They are currently both doubles but that's an experiment. There is no more per stat ability to set the type. Statistics::Counter is not the same as Counter! Implement a visitor for statistics output so that new output types can be implemented independently from the stats package itself. Add a unique id to each stat so that it can be used to keep track of stats more simply. This number can also be used in debugging problems with stats. Tweak the bucket size stuff a bit to make it work better. fixed VectorDist size bug cpu/memtest/memtest.cc: Fix up for changes in stats package Don't use value() since it doesn't work with binning. If you want a number as a stat, and to use it in the program itself, you really want two separate variables, one that's a stat, and one that's not. cpu/memtest/memtest.hh: Fix up for changes in stats package test/Makefile: Try to build stuff now that directories matter test/stattest.cc: test all new output types choose which one with command line options --HG-- extra : convert_revision : e3a3f5f0828c67c0e2de415d936ad240adaddc89
2004-04-05Changes to config to allow everything (including 'children'Steve Reinhardt
and 'type') to be specified via instance name and not just config class. Old code only did instance-name lookup for SimObject parameters. This feature makes life easier for transitioning to the Python script-based config. sim/builder.cc: Use ConfigNode::find to look for "type" parameter so it can be found if set under instance name (not config class). sim/param.cc: Make Param<bool> accept "1" for true and "0" for false. --HG-- extra : convert_revision : f40d0878d0f03b2e216f0506c05d0e52db608cca
2004-04-02Basic cleanup pass to get rid of a few things that made the PythonSteve Reinhardt
configuration unnecessarily awkward. Biggest changes are: - External and internal object names now match in all cases. The macros still allow them to be different; the only reason I didn't get rid of that is that the macros themselves should be going away soon. In the few conflicting cases, I sometimes renamed the C++ object and sometimes renamed the config object. The latter sets of substitions are: s/BaseBus/Bus/; s/MemoryObject/FunctionalMemory/; s/MemoryControl/MemoryController/; s/FUPool/FuncUnitPool/; - SamplingCPU is temporarily broken... we need to change the model of how this works in the .ini file. Having it as a CPU proxy is really awkward. arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: cpu/simple_cpu/simple_cpu.cc: sim/process.cc: Rename objects to match config name. cpu/base_cpu.cc: Uncomment SimObject define since SamplingCPU no longer does this for us. dev/ethertap.cc: Use unsigned instead of uint16_t for params. kern/tru64/tru64_system.cc: Use unsigned instead of uint64_t for init_param param. test/paramtest.cc: Fix old SimObjectParam. --HG-- extra : convert_revision : 378ebbc6a71ad0694501d09979a44d111a59e8dc
2004-03-26Get rid of the printExtraOutput stuffNathan Binkert
--HG-- extra : convert_revision : d82718ad4b3c5dd56a99c727e78b39917f9d4541
2004-03-24Minor cleanup from building & diffing behaviorSteve Reinhardt
on various platforms. base/hashmap.hh: gcc on Alpha doesn't always define __LP64__, even though it arguably should. cpu/exec_context.cc: Clear register file on non-full-system too (even though it typically gets overwritten by the initial regs from the Process object). sim/process.cc: Clear initial register copy in Process object. Not all regs get initialized when the executable is loaded. --HG-- extra : convert_revision : f1fe4734a5ea81331d70994cb5284b1e9db0dceb
2004-03-19Make it so that alpha_console can read the frequency from the correctRon Dreslinski
sim object(depends on which platform tsunami/tlaser is being used) dev/alpha_console.cc: Use dynamice casting once during build to get at the proper device to calculate the frequency. It is either a tsunami_IO or a tlaser_clock depending on platform (tsunami/tlaser). If the simobject is not of either of those types then panic dev/alpha_console.hh: Pass in a SimObject * that is to either a tlaser_clock or a tsunami_IO sim/sim_object.cc: Make it so that you can have a SimObjectParam of type SimObject: example: SimObjectParam<SimObject *> so; --HG-- extra : convert_revision : 08239ef23762b8ea11311630b73fe885d939402e
2004-03-11merge with m5 headLisa Hsu
--HG-- extra : convert_revision : c90339248d1ee74df1c6b90a77ec9ea41f646311
2004-03-05changes that affect post checkpoint runs.Lisa Hsu
cpu/exec_context.cc: you can't delete an element of an array that you newed. oops. kern/tru64/tru64_events.cc: changes to reflect .ini changes, and also b/c es_intr and ipintr can happen at ANY point, even within a current calling path being tracked. sim/system.cc: can't delete an element of a newed array. must new them separately. --HG-- extra : convert_revision : 21573327b7b7f20bf9a3fcfb5854526433e17e17
2004-03-05nother fixLisa Hsu
cpu/exec_context.cc: nother little bug...forgot to pop off stack as i read off it sim/system.cc: forgot to pop off stack as i read off it --HG-- extra : convert_revision : d1f691c0a9f0fa22281c717ee465d8a5f1e45c13
2004-03-05Merge zizzer:/bk/m5 into zower.eecs.umich.edu:/z/hsul/work/bk/bincleanupLisa Hsu
--HG-- extra : convert_revision : e4303df381e5f397d15c37eb05377be1860f89be
2004-03-05forgot to check this inLisa Hsu
--HG-- extra : convert_revision : 3090da3ab1077736bae52519143b44b08dd5ddb9
2004-03-05Merge zizzer.eecs.umich.edu:/bk/m5Nathan Binkert
into ziff.eecs.umich.edu:/z/binkertn/research/m5/latest --HG-- extra : convert_revision : 51b3fd809a77e146b8370636b2cc60ddf1075195
2004-03-05constructor option to make the wrapped event autodeleteNathan Binkert
--HG-- extra : convert_revision : 8663c874c533685adf21eea968b08b40b7d7b665
2004-03-05add ticks per picosecondNathan Binkert
--HG-- extra : convert_revision : 1585e7f89340b941e699db6b81080af58500a7c2
2004-03-05small bugfix, forgot to increment iterLisa Hsu
sim/system.cc: oops, forgot to increment iter. --HG-- extra : convert_revision : 95fcd337d00157ccf072f0eb301b76f280480839
2004-03-05serialization for binning. it is WAAAAAAAY past my bedtime.Lisa Hsu
cpu/exec_context.cc: sim/system.cc: sim/system.hh: serialization for binning --HG-- extra : convert_revision : f8417794a3a5ec7f2addc9c2da0f48e851899112
2004-03-04Overall gist of this is to 'dynamicize' the tracking of functions so you can ↵Lisa Hsu
choose them at the .ini stage rather than at compile time. to do it: in .ini file set binned_fns=foo null bar foo what this says is, track foo when it is called by null (i.e. anything). bin bar only when it is called by foo. essentially, if you have a path of functions to track, the 0th, 2nd, 4th fn listed are the fns to track, and the 1st, 3rd, 5th are their respective callers. base/statistics.hh: turn it back to FS_MEASURE since we already have a build in place kern/tru64/tru64_events.cc: remove FS_MEASURE #defs. add more DPRINTF's. manage an anomaly that happens when tracking idle_thread. kern/tru64/tru64_events.hh: remove FS_MEASURE #defs kern/tru64/tru64_system.cc: make DumpState print all the time, but only with DPRINTF. add a new parameter to tru64System a vector<string> binned_fns, to read in from .ini file. now all this binning stuff is dynamically generated. kern/tru64/tru64_system.hh: remove all static binning stuff, add support for dynamic sim/system.cc: change nonPath bin name to Kernel, remove FS_MEASURE sim/system.hh: change nonPath to Kernel --HG-- extra : convert_revision : 9ee813c0a64273bab4125815b7bc8145c5897ec1
2004-02-29Initial cleanup pass of lisa's function call trackingNathan Binkert
code. base/statistics.hh: We're getting rid of FS_MEASURE, but for now, we're going to still use a compile time flag to turn on and off binning of statistics. (The flag is STATS_BINNING) cpu/exec_context.cc: cpu/exec_context.hh: kern/tru64/tru64_system.cc: get rid of FS_MEASURE cpu/simple_cpu/simple_cpu.cc: yank the function call tracking code out of the cpu and move it into the software context class itself. kern/tru64/tru64_system.hh: get rid of FS_MEASURE move all of the tacking stuff to the same place. sim/system.hh: cleanup --HG-- extra : convert_revision : 73d3843afe1b3ba0d5445421c39c1148d3f4e7c0
2004-02-29Make the progress event work even after restoring from a checkpointNathan Binkert
--HG-- extra : convert_revision : 80e31eb26250700ebe3ce5848e570068cc76ef47
2004-02-21Change order of serializationNathan Binkert
sim/sim_object.cc: serialize objects in the reverse order of their creation. This causes a SimObject that is dependent on another to be serialized first. For example, the ethernet device writes back some data to physical memory while serializing, so this will cause the physical memory to be serialized after that, preserving the data written back. --HG-- extra : convert_revision : f9a37b63ce777df1cfecefa80f94f8fc69e42448
2004-02-20Add a simple event wrapper class that takes a class pointerNathan Binkert
and member function and will schedule it for the future. --HG-- extra : convert_revision : f5c5a8df0839e1e10716850c2086862c4a5bc499
2004-02-13Merge zizzer.eecs.umich.edu:/m5/Bitkeeper/m5Andrew Schultz
into zizzer.eecs.umich.edu:/z/alschult/linux --HG-- extra : convert_revision : 2ea2bbd41f7e0c257b374d9cd0e37abaf6a7c170
2004-02-10Fixes for Linux syscall emulation.Steve Reinhardt
arch/alpha/alpha_linux_process.cc: Fixes for Linux emulation: - stat struct alignment - osf_{get,set}sysinfo return values - additional syscall numbers - initialize $r0 to 0 sim/syscall_emul.cc: brk(0) just returns brk value (don't update it!) --HG-- extra : convert_revision : 78e22458321c81e81540d101c9e65e2e4b0ad117
2004-02-09Merge linux tree with headAndrew Schultz
arch/alpha/alpha_memory.cc: dev/alpha_console.cc: dev/alpha_console.hh: Merge --HG-- extra : convert_revision : 3233648f204338ab3f102ff117754dce955dcc37
2004-02-09Results of automatic (yet incomplete) merge.Steve Reinhardt
--HG-- extra : convert_revision : 3ad9a929051bfe111a1e10618c8595acbbade542
2004-02-06Merge zizzer.eecs.umich.edu:/bk/m5Nathan Binkert
into ziff.eecs.umich.edu:/z/binkertn/research/m5/kernel --HG-- extra : convert_revision : fa0e28dc72b54add9e534f8f689b0f6dd8e7731c
2004-02-05Now skips the calibrate_delay loop in the kernel bootAndrew Schultz
dev/tsunami.cc: Changed so Tsunami has a pointer to the System to which it belongs. Now it is derived from generic base class Platform so platform stuff can be accessed based on the system dev/tsunami_io.cc: dev/tsunami_io.hh: Cleanup and added copyright kern/linux/linux_system.cc: kern/linux/linux_system.hh: Added event to skip the "calibrate_delay" function, now calculate loops_per_jiffy based on frequency, interrupt frequency, and constant sim/system.hh: Added pointer to generic Platform base class --HG-- extra : convert_revision : 5bd925eec220a2ca48eb6164d2ecfdec96922c2c
2004-02-05Modify the emulated system calls to support running the SPEC IntDavid Oehmke
benchmarks for alpha-linux. arch/alpha/alpha_linux_process.cc: Added some more ioctl commands to ignore. Set unlink and rename to the new functions. Ignore setrlimit, times and rt_sigaction. Should eventually provide a function for times. arch/alpha/alpha_tru64_process.cc: Added some more ioctl commands to ignore. Set unlink and rename to the new functions. Ignore setrlimit. sim/syscall_emul.cc: Added implementations for unlink and rename. sim/syscall_emul.hh: Added unlink and rename functions. Added a couple more ioctl requests to ignore. Print out the PC of any ioctl commands that fail. --HG-- extra : convert_revision : 8af21c7fa7d0645d3f9324c9ce70ad33590c3c8e
2004-02-04Add support for "serializing" instructions that flushSteve Reinhardt
execution pipeline (Alpha trapb & excb). Add support for write memory barriers (mostly impacts store buffer). Add StaticInst flag to indicate memory barriers, though this is not modeled in the pipeline yet. arch/alpha/isa_desc: Implement trapb, excb, mb, and wmb as insts with no execution effect (empty execute() function) but with flags that indicate their side effects. Also make sure every instruction that needs to go to the execute stage has a real opClass value, since we are now using No_OpClass to signal insts that can get dropped at dispatch. StaticInst::branchTarget() is now a const method. cpu/static_inst.hh: Add flags to indicate serializing insts (trapb, excb) and memory and write barriers. Also declare some StaticInst methods as const methods. dev/etherlink.hh: sim/eventq.hh: sim/serialize.cc: sim/serialize.hh: sim/sim_object.hh: Make name() return value const. --HG-- extra : convert_revision : 39520e71469fa20e0a7446b2e06b494eec17a02c
2004-02-04More reformatting of reference parameter declarations.Steve Reinhardt
The last change only caught the ones with types that started with capitals. This pass catches the rest (mostly STL and uint*_t types). base/cprintf_formats.hh: cpu/simple_cpu/simple_cpu.cc: sim/serialize.cc: sim/serialize.hh: Change "foo_t& foo" to "foo_t &foo". --HG-- extra : convert_revision : fc7f7425db2aef33e490f952b5ce74c8c36d0d41
2004-02-02Change "Foo& foo" declarations to "Foo &foo".Steve Reinhardt
This primarily to be internally consistent (sometimes we used one, sometimes the other, even within the same line of code!). I picked the latter to be symmetric with "Foo *foo". base/cprintf_formats.hh: base/range.hh: base/refcnt.hh: base/res_list.hh: base/statistics.hh: base/str.hh: cpu/exec_context.hh: cpu/simple_cpu/simple_cpu.cc: cpu/simple_cpu/simple_cpu.hh: sim/serialize.cc: sim/serialize.hh: sim/syscall_emul.hh: Change "Foo& foo" declarations to "Foo &foo". --HG-- extra : convert_revision : ca1b0e85a578b539214bda3b8d61ac23792f2e87
2004-01-29remove #include of nonexistent fileNathan Binkert
sim/universe.cc: oops. this doesn't exist --HG-- extra : convert_revision : 2cfb3680e4ebe3f27f22a79f853d4d6df445e65a
2004-01-29provide an output stream for simulator output. (This takes place of theNathan Binkert
statStream catchall that we had before) Also provide an optional output directory that multiple simulator output files can be written to. Make most output files use the output directory base/misc.cc: send warnings to the outputStream as well base/trace.cc: dprintf_stream defaults to cerr dev/console.cc: use the output directory for the console output if it exists dev/etherdump.cc: dump to the output directory if it exists sim/builder.cc: sim/builder.hh: move constructor and destructor to .cc file use a function to get the stream that the builder dumps its output to, and create a separate file in the output directory if able sim/main.cc: statStream -> outputStream sim/serialize.cc: dump checkpoints to the output directory if specified sim/universe.cc: provide an output stream for simulator output. (This takes place of the statStream catchall that we had before) Also provide an optional output directory that multiple simulator output files can be written to. --HG-- extra : convert_revision : 03abce20edbbf7ec19c9ddd8d69ec8485c383532
2004-01-27a bunch of warning fixesNathan Binkert
arch/alpha/isa_desc: don't say warn: Warning: base/misc.cc: avoid printing two newlines in a row sim/main.cc: print out a message just before we enter the event queue --HG-- extra : convert_revision : 2a824d4b67661903fc739a0fb0759aa91d72382c
2004-01-14Setup initialization callbacksNathan Binkert
--HG-- extra : convert_revision : ec56a839a0489c5494bfcd9ead0fc3866f1e8ac2
2004-01-11Modify handling of serialize:dir parameter to make it more useful.Steve Reinhardt
Move global checkpoint-related functions and vars into Checkpoint class (as statics). arch/alpha/pseudo_inst.cc: dev/disk_image.cc: Move global checkpoint-related functions and vars into Checkpoint class (as statics). sim/serialize.cc: Move global checkpoint-related functions and vars into Checkpoint class (as statics). Checkpoint constructor now takes checkpoint directory name instead of file name. Make serialize:dir parameter actually set checkpoint directory name instead of directory in which checkpoint directory is created. If the value contains a '%', the curTick value is sprintf'd into the format to create the directory name. The default is backwards compatible with the old fixed name ("m5.%012d"). sim/serialize.hh: Move global checkpoint-related functions and vars into Checkpoint class (as statics). Checkpoint constructor now takes checkpoint directory name instead of file name. --HG-- extra : convert_revision : d0aa87b62911f405a4f5811271b9e6351fdd9fe4
2003-12-15Clean up time handling codeNathan Binkert
base/str.hh: this should really be inline base/time.cc: base/time.hh: clean up how the time class works. Export only one, and let people calculate their own elapsed times, etc. sim/main.cc: sim/sim_time.X -> base/time.X --HG-- rename : sim/sim_time.cc => base/time.cc rename : sim/sim_time.hh => base/time.hh extra : convert_revision : f3888fe3a1fdd1022084c282b58407c631a6d9a0
2003-12-11- Switch events to use a priority enum instead of integers.Steve Reinhardt
This lets us centralize priorities so we can see what's going on. - Shift serialize & cpu-switch events to happen before CPU ticks (to be consistent with starting new CPU on same cycle instead of next cycle). - Get rid of unnecessary bus stats reset callback. cpu/simple_cpu/simple_cpu.cc: sim/debug.cc: sim/eventq.hh: sim/serialize.cc: sim/sim_events.cc: sim/sim_events.hh: Switch events to use a priority enum instead of integers. This lets us centralize priorities so we can see what's going on. --HG-- extra : convert_revision : 510d79b43c0a1c97a10eb65916f7335b1de8b956
2003-12-11Stats & serialization tweaks & cleanup. Unserializing fromSteve Reinhardt
a checkpoint now gives identical results to running from scratch and doing at switchover at the same cycle! - CPUs start at cycle 0 again, not cycle 1. - curTick is now serialized & unserialized. - Stats get reset in main (before event loop). Since this is done after curTick is unserialized, simTicks gets set correctly for running from a checkpoint. - Simplify serialization to happen in a single pass. - s/Serializeable/Serializable/ arch/alpha/isa_traits.hh: dev/etherlink.hh: sim/eventq.cc: sim/eventq.hh: s/Serializeable/Serializable/ kern/tru64/tru64_system.cc: sim/process.cc: Make initial CPU activation on cycle 0 again (not 1). sim/main.cc: Reset stats before getting started. Make error message on falling out of event loop more meaningful. sim/serialize.cc: sim/serialize.hh: Get rid of now-useless initial pass; serialization is done in a single pass now. Serialize & unserialize curTick. Wrap curTick and mainEventQueue in a "globals" Serializable object. s/Serializeable/Serializable/ sim/sim_object.cc: Add static function to serialize all SimObjects. sim/sim_object.hh: Add static function to serialize all SimObjects. s/Serializeable/Serializable/ --HG-- extra : convert_revision : 9dcc411d0009b54b8eb61c3a509680b81b9f6f68
2003-12-10Rename RegResetCallback to registerResetCallback().Steve Reinhardt
Add reset callback for bus (to fix idle cycles computation). base/statistics.cc: base/statistics.hh: sim/sim_object.cc: Rename RegResetCallback to registerResetCallback(). --HG-- extra : convert_revision : c886c98143d4851f709ef95de3120b4494f8e4d2
2003-12-10Factor ExecContext::setStatus(), BaseCPU::execCtxStatusChange(),Steve Reinhardt
and SimpleCPU::setStatus() into separate functions. For example, setStatus(Active) is now activate(). --HG-- extra : convert_revision : 4392e07caf6c918db0b535f613175109681686fe
2003-12-09Minor fixes. Somehow do-tests.pl suddenly started failingSteve Reinhardt
on test5 because of a wrong exit code; fixed that. sim/main.cc: No need to ignore SIGPIPE, as far as I know. sim/sim_events.cc: A CountedExitEvent is a normal termination, so should have an exit code of 0. --HG-- extra : convert_revision : 8b5072aca54f3ca08b2815b73ac01c00e4da49b6
2003-12-06Various cleanup. Mostly forcing initialization of some fields...Steve Reinhardt
I noticed that checkpoints dumped from m5.debug and m5.opt had differences, which is no longer the case (other than addresses encoded in names). cpu/full_cpu/smt.hh: Get rid of unused SMT_MAX_CPUS. sim/debug.cc: Use AutoDelete for DebugBreakEvent. sim/serialize.cc: sim/serialize.hh: Move constructor & destructor to header so they can be inlined. --HG-- extra : convert_revision : bc68c2c9b053b1de0d655ed555734419fafd0b83