f6e5b92d63
ELF Loader: Use physical addresses instead of virtual ones. This works in SE mode because the virtual and physical addresses specified for segments are the same. In Alpha, the LoadAddrMask is still necessary because the virtual and physical addresses are the same and apparently rely on the super page mechanism. All of the regressions pass.
Gabe Black
2007-10-09 13:12:04 -07:00
a630d77ec5
Configuration: Move iocache outside of processors loop so it works for MP systems
Ali Saidi
2007-10-08 15:19:58 -04:00
8858b0b667
X86: Make x86 initialize more state.
Gabe Black
2007-10-07 18:20:51 -07:00
a19c212757
X86: Work on the x86 tlb.
Gabe Black
2007-10-07 18:18:39 -07:00
cd36c69a4d
X86: Make faults maintain an error code which gets pushed on the stack.
Gabe Black
2007-10-07 18:17:52 -07:00
efbff349a9
X86: Significantly filled out misc regs.
Gabe Black
2007-10-07 18:16:00 -07:00
999328f5ad
X86: Make sure there are fewer spurious differences between instructions for caching purposes.
Gabe Black
2007-10-07 18:14:48 -07:00
d53552355b
BitUnion: Fix some types in the bitunion classes.
Gabe Black
2007-10-07 18:12:10 -07:00
63a6d7376b
X86: Make initCPU and startupCPU do something basic.
Gabe Black
2007-10-07 18:10:42 -07:00
304e4c932a
X86: Make the Interrupts class complain less.
Gabe Black
2007-10-07 18:08:17 -07:00
847a18ad48
X86: Adjust the config scripts for x86 fs.
Gabe Black
2007-10-07 17:52:36 -07:00
e540c37282
X86: Make an x86 system object.
Gabe Black
2007-10-07 17:48:36 -07:00
8fe672551e
X86: Make an x86 platform object.
Gabe Black
2007-10-07 17:48:06 -07:00
22196f8885
X86: X86 FS compile fix.
Gabe Black
2007-10-07 17:46:56 -07:00
bd5a88ba43
Merge with head.
Gabe Black
2007-10-04 12:35:35 -07:00
e1516aefbb
X86: Fix the PageShift constant in isa_traits.hh (I thought I alread did this?)
Gabe Black
2007-10-04 12:34:29 -07:00
2848ef6696
SPARC: Make software trap 3 flush the register windows like the ABI specifies.
Gabe Black
2007-10-04 12:24:16 -07:00
50e2d20cb8
Merge with head.
Gabe Black
2007-10-02 23:03:38 -07:00
c2d60abf52
X86: Distinguish between the rep and repe prefixes. STOS and MOVS only accept the rep prefix which always loops until rcx becomes 0. The other string instructions accept repe (same encoding as rep) and repne which also check the condition code flags each iteration.
Gabe Black
2007-10-02 23:02:18 -07:00
504f90f763
X86: Start implementing the x86 tlb which will handle segmentation permission and limit checks and paging.
Gabe Black
2007-10-02 23:00:37 -07:00
f4a932a6b3
X86: Fix places where movfp was used incorrectly.
Gabe Black
2007-10-02 22:58:48 -07:00
06d2d54b57
X86: Fix the movfp microop.
Gabe Black
2007-10-02 22:58:04 -07:00
3e644b48bb
X86: Fix x87 floating point stack register indexing.
Gabe Black
2007-10-02 22:57:33 -07:00
a56c651980
Predecoder: Clear out predecoder state on an ITLB fault.
Gabe Black
2007-10-02 22:21:38 -07:00
4049c9f76a
X86: Put ldst into the microcode (the earlier changeset didn't really). Also clean things up as much as possible so that faulting won't break an instruction. More microops which verify addresses are needed.
Gabe Black
2007-10-02 22:19:53 -07:00
7c521db9de
X86: Implement the ldst microop and put it in existing microcode where appropriate.
Gabe Black
2007-10-02 22:08:09 -07:00
683d6d46f6
X86: Fix up the microcode for the FST and FSTP instructions.
Gabe Black
2007-10-02 22:06:59 -07:00
b831f7409b
X86: Get rid of a hack for ruflag which is no longer necessary.
Gabe Black
2007-10-02 22:05:50 -07:00
efb309525a
X86: Allow logic instructions to set ECF as well as CF.
Gabe Black
2007-10-02 22:05:10 -07:00
65c247f21f
X86: Add classes for the actual x86 faults.
Gabe Black
2007-10-02 22:04:20 -07:00
7d78f1b41c
X86: Hook in another version of the XCHG instruction.
Gabe Black
2007-10-02 22:03:38 -07:00
66a08f7ba4
X86: Implement MOVS
Gabe Black
2007-10-02 22:02:58 -07:00
fea7165b55
X86: Implement STOS.
Gabe Black
2007-10-02 22:02:30 -07:00
7571e8346d
CPU: Make the cpuid parameter get set in SE mode as well.
Gabe Black
2007-10-02 18:33:57 -07:00
8ca7feb726
Remote GDB: Turn on remote gdb in SE mode.
Gabe Black
2007-10-02 18:26:27 -07:00
988cdb49f2
CPU: Make the cpus check the pc event queues in SE mode.
Gabe Black
2007-10-02 18:25:37 -07:00
48041fdc53
SPARC,Remote GDB: Flesh out the acc function for SE mode.
Gabe Black
2007-10-02 18:25:10 -07:00
1c83418b14
SPARC,Remote GDB: Fix an accounting bug in the remote gdb stuff.
Gabe Black
2007-10-02 18:24:24 -07:00
5db7125317
Remote GDB: Get rid of an unwanted delete in SE.
Gabe Black
2007-10-02 18:23:11 -07:00
3eeda8008d
CPU: Make sure the system parameter gets set in the cpu builders. Other parameters need to be fixed as well.
Gabe Black
2007-10-02 18:22:36 -07:00
0acf891c32
CPU: fix sparc_fs booting with SimpleTimingCPU.
Ali Saidi
2007-10-01 02:55:27 -04:00
272d867402
Update statistics for the last three revisions
Ali Saidi
2007-09-28 13:22:34 -04:00
d2a4f595d6
Update stats for quiesced cycles
Ali Saidi
2007-09-28 13:22:14 -04:00
d325f49b70
Rename cycles() function to ticks()
Ali Saidi
2007-09-28 13:21:52 -04:00
887cd6a273
Update statistics to use cycles properly instead of ticks
Ali Saidi
2007-09-28 13:21:30 -04:00
58c448ced5
Condition Codes: Fix the findParity function.
Gabe Black
2007-09-25 20:26:10 -07:00
2dd65dc254
Merge with head.
Gabe Black
2007-09-25 20:11:41 -07:00
25a9b6ea5e
SPARC: Remove parameter that was only ever set to one value.
Gabe Black
2007-09-25 20:11:03 -07:00
e735001d54
SPARC: Remove some redundant code from some of the fp instructions.
Gabe Black
2007-09-25 20:10:04 -07:00
306b5c6b5b
SPARC: Clean up of privileged instructions.
Gabe Black
2007-09-25 20:09:25 -07:00
b896ad584b
SPARC: Long overdue cleanup of the condition code handlers.
Gabe Black
2007-09-25 20:08:34 -07:00
25b4874664
Condition Codes: Fix type error.
Gabe Black
2007-09-25 20:07:06 -07:00
8d53fea210
SPARC: Clean up the branch instructions a bit.
Gabe Black
2007-09-25 20:05:11 -07:00
9ef0f6a7f1
Loader: Load all segments of an elf, rather than just the "text" and "data".
Gabe Black
2007-09-25 20:03:51 -07:00
85d46ce470
Loader: Only complain about TLS sections if you're using Alpha.
Gabe Black
2007-09-25 20:02:30 -07:00
032a30f345
SPARC: Fix a stupid mistake which was breaking the SPARC regressions.
Gabe Black
2007-09-25 20:00:46 -07:00
b3c6f32543
X86: Fix for uninitialized variables in stacktrace code.
Gabe Black
2007-09-25 14:44:12 -07:00
418ddf43e6
X86: Get X86_FS to compile.
Gabe Black
2007-09-24 17:39:56 -07:00
dd277e0d8f
SPARC: Fix linking error from new flattenFloatIndex function.
Gabe Black
2007-09-19 19:08:42 -07:00
3cd95a2748
X86: Implement the fld, fst, and fstp instructions.
Gabe Black
2007-09-19 18:28:34 -07:00
a75b6f5106
X86: Move the fp microops to their own file with their own base classes in C++ and python.
Gabe Black
2007-09-19 18:27:55 -07:00
f3f3747431
X86: Put in the foundation for x87 stack based fp registers.
Gabe Black
2007-09-19 18:26:42 -07:00
a54ae9f92b
X86: Put in stubs for x87, 64 bit and 128 bit SIMD instruction microcode.
Gabe Black
2007-09-19 18:25:17 -07:00
a1912df360
X86: Enable the rename system call.
Gabe Black
2007-09-19 18:24:11 -07:00
bdc0261eb5
X86: Enable the unlink system call.
Gabe Black
2007-09-19 18:23:35 -07:00
76c4c5fabc
mem: clean up bus/cache DPRINTFs a bit Not so much noise on failed sends, and more complete info when grepping a trace using an address.
Steve Reinhardt
2007-09-16 16:46:38 -07:00
4a4aa59632
Merge with head.
Gabe Black
2007-09-13 16:36:25 -07:00
bbc8a40857
X86: Fix how ECF is computed in genFlags, and get rid of some duplicate code.
Gabe Black
2007-09-13 16:35:41 -07:00
534c6a800a
X86: Make the shift and rotate instructions set the carry flag(s) and overflow flags like they're supposed to.
Gabe Black
2007-09-13 16:35:20 -07:00
f7b6230d99
X86: Total overhaul of the division instructions and microops.
Gabe Black
2007-09-13 16:34:46 -07:00
136cb057d4
Checkpointing: Fix directory regex
Ali Saidi
2007-09-12 15:27:15 -04:00
6f9ad931cc
Checkpointing: Force drain/resume when switching a CPU
Ali Saidi
2007-09-12 15:24:24 -04:00
5f187e592e
Devices: More fixes to Intel NIC Model.
Ali Saidi
2007-09-12 15:24:23 -04:00
19fbdcd30b
Loader: Error if a TLS section is found in the binary.
Ali Saidi
2007-09-11 00:01:24 -04:00
0f57b407a3
X86: Make the isa parser run if any of the microcode files change.
Gabe Black
2007-09-10 16:49:07 -07:00
87408d5ad2
Fix for leaving EXTRAS blank Apparently env['EXTRAS'] will return an empty string if not set. split will then split it into an empty string, and normalize will turn "" into ".".
Gabe Black
2007-09-10 16:42:41 -07:00
8f724a8b96
Normalize the path pathed in through EXTRAS so it won't break with a trailing slash.
Gabe Black
2007-09-10 12:48:06 -07:00
22a57562cd
Remove redundant endian.hh and use byteswap.hh in its place.
Gabe Black
2007-09-10 11:02:50 -07:00
8e7bca8b36
X86: Move a comment to be next to the code it describes.
Gabe Black
2007-09-10 11:01:52 -07:00
3e65e1d0e0
Merge with head.
Gabe Black
2007-09-06 16:32:03 -07:00
e4c0171356
X86: Rework the multiplication microops so that they work like they would in the patent.
Gabe Black
2007-09-06 16:27:28 -07:00
7f079149f1
X86: Make signed multiplication do something different from unsigned.
Gabe Black
2007-09-06 16:25:29 -07:00
5052e2cb10
X86: Make signed versions of partial register values available to microops.
Gabe Black
2007-09-06 16:22:08 -07:00
832ef7412b
X86: Correct how the hi portion of a product is computed.
Gabe Black
2007-09-06 16:20:12 -07:00
389abade01
X86: Add a square root microop and the SSE sqrt instruction.
Gabe Black
2007-09-06 16:18:34 -07:00
4478487c37
X86: Add SSE comparison instructions and microops and move some FP microops to be with the other ones.
Gabe Black
2007-09-06 16:09:28 -07:00
bf7c01d43d
Bus: Fix drain code; old method could return 1 in atomic mode and never call de->process().
Ali Saidi
2007-09-05 17:12:41 -04:00
dd6a21190e
Configuration: Fix example script to only create one L2 if --l2cache and -nX are given as parameters.
Ali Saidi
2007-09-05 14:57:50 -04:00
57da059415
Merge with head.
Gabe Black
2007-09-04 23:46:08 -07:00
fea46ee6e3
X86: Implement an SSE xor microop and instruction.
Gabe Black
2007-09-04 23:44:37 -07:00
6c689a3b4b
X86: Make the movfp microop use FloatRegBits instead of FloatRegs. This fixes a problem where interpreting arbitrary bits as floating point would change what the value was. These values are legitimate because the fp registers could be used to move around arbitrary data.
Gabe Black
2007-09-04 23:42:55 -07:00
26ba7cc3b2
X86: Add tracing to the floating point register file.
Gabe Black
2007-09-04 23:40:47 -07:00
26044dca33
X86/StateTrace: Make m5 and statetrace track mmx and xmm registers, and actually compare xmm.
Gabe Black
2007-09-04 23:39:57 -07:00
760240176a
X86: Hook in the fp arithmetic instructions. Stale python made it work before.
Gabe Black
2007-09-04 23:38:34 -07:00
d2fc4ee625
X86: Implement some SSE fp microops and instructions.
Gabe Black
2007-09-04 23:33:50 -07:00
8e3b199cb8
X86: Add some SSE floating point/integer conversion microops.
Gabe Black
2007-09-04 23:32:18 -07:00
af4c04c426
X86: Add floating point micro registers.
Gabe Black
2007-09-04 23:31:40 -07:00
310912cf2c
X86: Fix a typo in the microassembly for the cqo instruction.
Gabe Black
2007-09-04 23:23:51 -07:00
aaee21afdb
X86: Implement idiv and propogate the mul corner case fix.
Gabe Black
2007-09-04 23:23:13 -07:00