b0b4038ee9
X86: Fix a corner case where mul would overwrite an original register value it still needed.
Gabe Black
2007-09-04 23:22:08 -07:00
e1e7605213
X86: Add in a file with floating point indexing which -should- have been in an earlier changeset.
Gabe Black
2007-09-04 23:21:41 -07:00
276a382557
Serialization: Fix unserialization of object pointers
Ali Saidi
2007-09-04 13:12:58 -04:00
021421d663
Config: Remove some ini file code that no longer works
Ali Saidi
2007-09-04 13:12:58 -04:00
9da070ce8a
X86: Major rework of how regop microops are generated. The new implementation uses metaclass, and gives a lot more precise control with a lot less verbosity. The flags/no flags reg/imm variants are all handled by the same python class now which supplies a constructor to the right C++ class based on context.
Gabe Black
2007-08-31 22:28:07 -07:00
9277545ba6
Microassembler: Pass the actual mnemonic used to the macroop add_micro function
Gabe Black
2007-08-31 22:26:02 -07:00
941675690c
X86: Get x86 to compile again after the simobject constructor change.
Gabe Black
2007-08-31 13:02:58 -07:00
eddf6f1637
python: Write configuration file without reassigning sys.stdout.
Miles Kaufmann
2007-08-30 15:16:59 -04:00
e4eea9ee04
Fix miscellaneous small typos.
Miles Kaufmann
2007-08-30 15:16:59 -04:00
cd890576bb
devices: Avoid using assert() to catch misconfiguration
Miles Kaufmann
2007-08-30 15:16:59 -04:00
54cc0053f0
params: Deprecate old-style constructors; update most SimObject constructors.
Miles Kaufmann
2007-08-30 15:16:59 -04:00
9cb49ab9e0
python: Eliminate the Python use of eval() and frame manipulation
Miles Kaufmann
2007-08-30 15:16:58 -04:00
f67cd04673
X86: Fix the sra microop to get the sign bit from the right operand.
Gabe Black
2007-08-29 20:39:41 -07:00
c1a776de8a
X86: Implement the movaps instruction.
Gabe Black
2007-08-29 20:38:22 -07:00
3da3190f07
X86: Implement the movsd instruction.
Gabe Black
2007-08-29 20:37:44 -07:00
f0b20ff970
X86: Implement the movlpd instruction.
Gabe Black
2007-08-29 20:37:16 -07:00
3b97b6e0e2
X86: Add an fp move microop.
Gabe Black
2007-08-29 20:36:44 -07:00
22830c0747
X86: Add load and store microops that use the fp registers.
Gabe Black
2007-08-29 20:36:12 -07:00
34f3c9d196
X86: Add operands to handle floating point registers.
Gabe Black
2007-08-29 20:35:30 -07:00
bc3635a110
X86: Flesh out register indexing constants.
Gabe Black
2007-08-29 20:34:52 -07:00
6204d00940
X86: Make the fp accessors not panic.
Gabe Black
2007-08-29 20:34:00 -07:00
61b1c53a2a
X86: Make x86 syscall return just stuff the return value in eax.
Gabe Black
2007-08-29 20:29:18 -07:00
c593cfbdeb
X86: More two byte opcode decoding. I missed two groups in the last changeset.
Gabe Black
2007-08-28 19:36:51 -07:00
fbab5c9bd3
X86: Hook in an implementation for lseek.
Gabe Black
2007-08-28 17:34:15 -07:00
37f1ff95e0
X86: More fully decode two byte opcodes. This includes the most of the SSE stuff, but not some of the "groups" of instructions.
Gabe Black
2007-08-28 17:18:13 -07:00
a3367adaff
Address translation: De-templatize the GenericTLB class.
Gabe Black
2007-08-28 14:30:50 -07:00
3ab1913077
Merge with head.
Gabe Black
2007-08-27 18:33:47 -07:00
b84704173e
SPARC: Update the statistics for the SPARC gzip benchmark in o3.
Gabe Black
2007-08-27 18:31:36 -07:00
13b1f7231c
Address Translation: Make the Generic TLB only compile in SE mode.
Gabe Black
2007-08-27 18:30:58 -07:00
703d10705c
Alpha: Fixes to get alpha to compile again.
Gabe Black
2007-08-27 18:30:02 -07:00
8253ff2ba9
MIPS: Fixes to get mips to compile.
Gabe Black
2007-08-27 18:29:15 -07:00
25ad253643
SPARC: Fixes to get SPARC to compile again.
Gabe Black
2007-08-27 18:26:36 -07:00
7227ab5f22
Merge with head
Gabe Black
2007-08-26 21:45:40 -07:00
8d1c7a83d7
X86: Make the Ruflag microop work correctly, and make the code a little clearer.
Gabe Black
2007-08-26 20:41:36 -07:00
ac5ec1542e
X86: Return values for some cpuid functions that match what my development machine returns.
Gabe Black
2007-08-26 20:40:42 -07:00
8b738f7f12
X86: Make the microassembler accept lines which are just labels. The labels on these lines will be associated with whatever the next microop is.
Gabe Black
2007-08-26 20:39:55 -07:00
03880cf828
X86: Make cpuid actually consider the eax parameter and return different values.
Gabe Black
2007-08-26 20:38:42 -07:00
9c99f5f825
X86: Fix the sign extension microop so it extends zeros correctly.
Gabe Black
2007-08-26 20:37:41 -07:00
506bf83595
X86: Implement cmps (string compare)
Gabe Black
2007-08-26 20:36:46 -07:00
00d9036c62
X86: Make shift instructions set some of the flags they're supposed to. The flag mechanism for microops needs to be fleshd out a little more to allow for custom flag calculation methods for certain microops. Shift is an example where the rules for calculating OF and CF are unique.
Gabe Black
2007-08-26 20:35:48 -07:00
9b49a78cfd
Address translation: Make the page table more flexible. The page table now stores actual page table entries. It is still a templated class here, but this will be corrected in the near future.
Gabe Black
2007-08-26 20:33:57 -07:00
80d51650c8
O3 CPU: Remove alignment check from dynamic instruction read/write functions.
Gabe Black
2007-08-26 20:31:30 -07:00
fcd04f953c
X86: Remove x86 code that attempted to fix misaligned accesses.
Gabe Black
2007-08-26 20:30:36 -07:00
24bfda0fdf
Simple CPU: Don't trace instructions that fault. Otherwise they show up twice.
Gabe Black
2007-08-26 20:29:09 -07:00
a51e2fd8bd
Stats: Update the stats.
Gabe Black
2007-08-26 20:27:53 -07:00
e7e2d5ce90
Simple CPU: Added code that will split requests that cross block boundaries into multiple memory access.
Gabe Black
2007-08-26 20:27:11 -07:00
e056e49c45
Simple CPU: Make sure only instructions which complete without faulting are counted.
Gabe Black
2007-08-26 20:25:42 -07:00
537239b278
Address Translation: Make SE mode use an actual TLB/MMU for translation like FS.
Gabe Black
2007-08-26 20:24:18 -07:00
f738afb865
SPARC: Make sure unaligned access are caught on cached translations as well.
Gabe Black
2007-08-26 20:15:29 -07:00
9791b0f927
IGbE: Some fixes to the intel nic model.
Ali Saidi
2007-08-25 01:38:01 -04:00
4e89518817
Mem: Make errors in the memory system be responses, not requests. Fixes cache handling of error responses.
Ali Saidi
2007-08-24 16:39:24 -04:00
20e0a3792a
Merge with head.
Gabe Black
2007-08-21 16:19:46 -07:00
e1054170b5
o3: Fix for retry ID bug. It should be cleared prior to the call to recvRetry. Add extra DPRINTF statement for clearer debugging output.
Kevin Lim
2007-08-21 16:16:56 -07:00
3555b2aecc
style: fix style hook when run from a repo subdir. Before this fix, the style hook would blow up when you did a qrefresh to add a new file, but executed the qrefresh from a repository sub directory.
Nathan Binkert
2007-08-21 16:15:14 -07:00
a874cb40ab
Merge with head.
Gabe Black
2007-08-18 19:41:08 -07:00
464a51e29e
Ports: Only try to do EthPort stuff in full system.
Ali Saidi
2007-08-17 04:20:02 -04:00
bba265ccd8
PCI: Move PCI Configuration data into devices now that we can inherit parameters.
Ali Saidi
2007-08-16 16:49:05 -04:00
773cb77656
Devices: Make EtherInts connect in the same way memory ports currently do.
Ali Saidi
2007-08-16 16:49:02 -04:00
a9e4daf574
style: Don't try to fix files that should be ignored. The style hook was ignoring new files, but processing all modified files.
Nathan Binkert
2007-08-14 18:21:23 -07:00
4bce50340f
Merge with head.
Gabe Black
2007-08-14 16:12:11 -07:00
0cb32aadb1
Regression: Update EIO simple-timing test for new cache.
Ali Saidi
2007-08-14 14:02:22 -04:00
b634e81496
Regression: Update insttest regressions for new cache.
Ali Saidi
2007-08-14 00:16:08 -04:00
51ac4d1fb5
Regression: Use test-progs in /dist instead of tests/test-progs since they all aren't there.
Ali Saidi
2007-08-14 00:14:03 -04:00
546fbfb47c
fixup bad hand merge
Ali Saidi
2007-08-13 23:45:07 -04:00
27ddf0b40e
Merge IGNORE_STYLE change and my change.
Ali Saidi
2007-08-13 23:44:26 -04:00
b069b81acf
Regression: See if using subprocess instead of os.system and erroring immediately will stop regression randomly hanging.
Ali Saidi
2007-08-13 23:40:43 -04:00
ca84d953b9
SPARC: Make nops have the IsNop flag set. In O3, a nop is used to carry faults down the pipeline that didn't originate from an instruction. If the instruction doesn't do anything, that is just returns NoFault, but doesn't have IsNop set, the NoFault will overwrite the fault that's being sent down and nothing will happen.
Gabe Black
2007-08-13 16:11:27 -07:00
92a57edff1
O3: Set up the predicted npc and nnpc for a fault carrying noop so that it doesn't cause a false branch mispredict.
Gabe Black
2007-08-13 16:08:58 -07:00
e99c56f971
SPARC: Move tlb state into the tlb. Each "strand" may need to have a private copy of this state, but I couldn't find anywhere in the spec that said that after looking briefly. This prevents writes to the thread context in o3 which was causing the pipeline to be flushed and stopping any forward progress. The other ASI accessible state will probably need to be accessed differently if/when we get O3 full system up and running.
Gabe Black
2007-08-13 16:06:50 -07:00
26853e11c0
SPARC: Make the spill and fill handlers use the correct ASI, and let No_Fault ASI accesses work.
Gabe Black
2007-08-13 16:02:47 -07:00
82f78ebd39
Move the "translate" member functions back into the base o3 class.
Gabe Black
2007-08-13 16:01:09 -07:00
9b4be65327
python: make the DictImporter's unload() work in any context. import sys since sys may not be defined in whatever context the DictImporter is used. Also reset self.installed after an unload since the same DictImporter could be used again
Nathan Binkert
2007-08-13 13:39:22 -07:00
ce219738b9
Style: fix IGNORE_STYLE so it isn't required on the command line.
Ali Saidi
2007-08-12 22:44:14 -04:00
e9ddc7fbca
Regression: fix configuration for SPARC_FS
Ali Saidi
2007-08-12 19:44:04 -04:00
d114e5fae6
Regression: Update stats for cache changes.
Ali Saidi
2007-08-12 19:43:55 -04:00
02353a60ee
MemorySystem: Fix the use of ?: to produce correct results.
Ali Saidi
2007-08-12 19:43:54 -04:00
b92594dd90
style: If IGNORE_STYLE=True is set on the scons command line, ignore style. Use this in the regress script to avoid issues with the checker.
Nathan Binkert
2007-08-12 09:56:05 -07:00
ec4000e0e2
Added fastmem option. Lets CPU accesses to physical memory bypass Bus.
Vincentius Robby
2007-08-08 18:43:12 -04:00
1caed14654
alpha: Quick fix for things related to TLB MRU cache. simple-timing test for ALPHA_FS breaks.
Vincentius Robby
2007-08-08 18:38:19 -04:00
9493501fdb
Regression: Add an I/O Cache to the full system regressions that have a cache.
Ali Saidi
2007-08-10 16:14:02 -04:00
06a9f58c68
DMA: Add IOCache and fix bus bridge to optionally only send requests one way so a cache can handle partial block requests for i/o devices.
Ali Saidi
2007-08-10 16:14:01 -04:00
5c38668ed6
Bus: Only call end() on an stl object once in a loop
Ali Saidi
2007-08-10 16:14:01 -04:00
13d10e844c
alpha: Make the TLB cache to actually work. Improve MRU checking for StaticInst, Bus, TLB
Vincentius Robby
2007-08-08 14:18:09 -04:00
ef32494e72
Alpha: Fix an off by one error with the tlb caching mechanism.
Gabe Black
2007-08-07 21:51:12 -07:00
0fd999ca40
Merge with head.
Gabe Black
2007-08-07 15:31:36 -07:00
e85144bff2
Statetrace: Make statetrace do string instructions all at once like m5 does.
Gabe Black
2007-08-07 15:27:54 -07:00
cd3f0646ca
X86: Added some missing parenthesis in the condition code calculation function.
Gabe Black
2007-08-07 15:26:50 -07:00
24541780c6
X86: Implemented and hooked in SCAS (scan string) Fixed the asz assembler symbol. Adjusted the condion checks to have appropriate options. Implemented the SCAS microcode. Attached SCAS into the decoder.
Gabe Black
2007-08-07 15:25:41 -07:00
d79a591608
X86: Add a format to handle string instructions which can use the repe and repne prefixes.
Gabe Black
2007-08-07 15:23:01 -07:00
60c61cb2b1
X86: Overhaul of ruflags to get it to work correctly.
Gabe Black
2007-08-07 15:21:13 -07:00
fb6cdf09cb
X86: Make a microcode branch microop. Also some touch up for ruflag.
Gabe Black
2007-08-07 15:19:26 -07:00
1db9e1fb8f
port: Implement cache for port interfaces and ranges
Vincentius Robby
2007-08-04 16:05:55 -04:00
2898d76827
alpha: Implement a cache for recently used page table entries
Vincentius Robby
2007-08-04 14:25:35 -04:00
cae8d20633
Merge with head.
Gabe Black
2007-08-04 20:27:23 -07:00
30e777a5d3
X86: Implement microops and instructions that manipulate the flags register.
Gabe Black
2007-08-04 20:24:18 -07:00
802f13e6bd
X86: Make 64 bit unaligned accesses work as well as the other sizes. There is a fundemental flaw in how unaligned accesses are supported, but this is still an improvement.
Gabe Black
2007-08-04 20:22:20 -07:00
b9793c2506
X86: Make the open flags correct.
Gabe Black
2007-08-04 20:18:20 -07:00