bringing prerelease-v0.2b into trunk
tweak Makefiles to use gcc4 and g++4
-ZPIPE-alloc/alloc-IO-DPM.cpp
 + an (almost) complete in-order dispatch
 + no RS allocation - uops go directly to appropriate exec pipe
 + no readyQ allocation - not needed in IO
 + no loadQ allocation - moved to exec after address gen.
 + TODO: move store handling to commit/WB
 + ROB refences kept for now (may need it since we commit Mops)
 + DIFF: NOPs go through the pipe to ensure in-order execution
 + big TOOD: SMT

-ZPIPE-exec/exec-IO-DPM.cpp
 + changed logic -> payload pipe is fixed for memory load for each (CISC-like) uop 
 + hardcoded 3-stage payload pipe (1-AGEN, 2,3-cache access)
 + TODO: do the new uops support 2+ memory-addresable operands? If yes, more changes
 + all above in step() (to replace ALU_exec() + RS_schedule())
 + RS routines completely removed - alloc goes directly to exec pipes
 + readyQ routines kept for now only for reference - shouldn't be called anywhere
 + TODO: LDQ_*, STQ_* should be changed to be at least 2-wide. Check again.
 + in-order pipe stalls when FU busy; TODO: add stalls? to ensure in-order completion in FUs due to diff latencies or keep the ROB and allow some out-of-order?
 + TODO: handle fused uops better (does Atom only fuse for decode/alloc?); now-handled ok during payload, should go separately to FUs - more stalls?

-config/A.cfg
 + very preliminary changes to a few default knob values;
Intermediate commit for syncing (before commiting ZPIPE-commit)
Initial commit of ZPIPE-commit.

Changes to add memory stores and WB to that stage.
TODO: Width == exec.width (IO)
      Add depth.
Initial functionally-working build. Pipeline fully in-order. Still some issues with machine width.

Still needs execution latencies, port bindings, decoder configuration(+penalty), float penalty  configured.
Major:
- Full 2-wide implementation
  + pre_commit observes machine width (commit-IO-DPM, A.cfg)
  + can_issue_IO can schedule uops that finish at the same cycle (exec-IO-DPM)

Minor:
- Bugfix for pipeflushes that span multiple pipes (move odep clearing to oracle??) (zesto-oracle, fetch-DPM)
Makefile, fib - irrelevant
Changes necessary to switch to fused LD-OP-ST execution
Configuration changes - more sensible decode configuration, changes in instruction caches (and iTLB), L2 caches, pre-decode, fetch.

Minor:
commit-IO-DPM: commit_recover() had a missing condition for fused uops at pre_commit
Major:
-Separate AGU unit to handle LEA instructions (decomposed to AGEND/AGENW).
-Smarter port assignment for stores.

Minor:
-Bug in store and writeback didn't allow IPC > 1
Exec:
+ The two pipes are now fully detached. IO synchronization occurs at the end of issue and then at the end of execution. May require cleaning.
+ Issue logic fianlly seems ok (haven't looked into FP pipe, though).
+ Exec unit stalls also seem to have the desired effect.
+ Some more debug/stats functionality: portx_occupancy stat and dump_payload() function.
- Look into issue of a load depending on a previous load (I think right now dependecy is disregarded because otherwise hell breaks loose for some reason).

Alloc:
+ Again added detaching of the two pipes. 
- See if std::list used can't preallocated to improve speed.

Commit:
+ Small fixes for better jeclear handling.
+ Commit buffer at reasonable size (8 entries to fit max 2 Mops of 4 uops).

Fetch/bpred:
+ Added ras-multistack.cpp to implement a speculative/real return-address-stack. 
+ Bpred configuration that matches the Atom (8K entry GShare).
alloc: Fixed bug with pipe flushes that didn't clear all instructions.
oracle: Fixed bug where Mop_seq and uop_seq weren't set for zero iteration REP ops.
exec: Fixed a bug that didn't update when_otag_ready (needed for issue scheduling) on exec stalls.
config: minor
Fixed issue with STA not forwarding result to uops other than STD.
Code for better handling of speculative load-store forwarding when the address is wrong or data not ready.
x86flow - removed fussion for uops that span different execution ports on Atom pipe (LD-FP_ADD)
exec: fixed non-propagating timing for exec stalls, a few other minor reordering issues
commit: fixed issue with incorrect ROB_eff_num
Makefile: Attempt to build for -O3 with working syscalls (not entirely working)
oracle: added cycle printing to assert failure
-added support for dumping deadlock reason
-fixing forwarding a large number of instructions
Minor bugfixes and dumping deadlock cause.
Initial boring stuff for integration - interfaces and pin tool skeleton.
Functionally working pin integration for single thread.
XXX: 8x decrease in instructions passed down to simlator...
Speclation logic that works.
Support for traps/syscalls.
Segment registers forwarding from pintool.
Still issues with shared memory space.