ae60d58083
Define symbols for the x86 specialization of the microassembler.
Gabe Black
2007-06-21 15:28:08 +00:00
0dc15742e3
Fix a comment.
Gabe Black
2007-06-21 15:26:38 +00:00
7e7d3ee0aa
Fix a problem where part of a microops parameters might be interpretted as an "ID", and also added support for symbols.
Gabe Black
2007-06-21 15:26:01 +00:00
efce09e958
Add in code that lays the ground work for setting flags.
Gabe Black
2007-06-21 13:48:44 +00:00
afd0082000
long is too long
Gabe Black
2007-06-20 19:48:25 -07:00
df7730b677
Fix compiler errors.
Gabe Black
2007-06-20 19:46:45 -07:00
77aa98d0f8
Implement rip relative addressing and put in some missing loads and stores.
Gabe Black
2007-06-20 19:08:04 +00:00
c4ebfa850e
Fix a newly introduced bug where the predecoder wasn't picking up all the displacement.
Gabe Black
2007-06-20 19:06:08 +00:00
a19f1c4014
X86 probably doesn't need a window save area.
Gabe Black
2007-06-20 19:05:06 +00:00
6c4b3db04c
Fix a typo in one of the operand type tags.
Gabe Black
2007-06-20 19:04:41 +00:00
e6328170e1
Comment out some unnecessary debug output.
Gabe Black
2007-06-20 19:04:40 +00:00
a735b7e282
Forgot to check these in...
Gabe Black
2007-06-20 19:04:39 +00:00
27da9f99b1
Comment out some unnecessary debug statements.
Gabe Black
2007-06-20 19:04:38 +00:00
0a971cc0c9
Merge zizzer.eecs.umich.edu:/bk/newmem into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86
Gabe Black
2007-06-20 19:04:37 +00:00
4a7bc06553
Minor error.
Vincentius Robby
2007-06-20 15:04:36 -04:00
d540dde5b4
Removed "adding instead of dividing" trick. Caused slowdown in performance instead of speeding up.
Vincentius Robby
2007-06-20 14:54:17 -04:00
f65e2710ec
Don't do checker stuff if the checker is not defined
Nathan Binkert
2007-06-20 08:15:06 -07:00
b47737dde7
Make sure all parameters have default values if they're supposed to and make sure parameters have the right type. Also make sure that any object that should be an intermediate type has the right options set.
Nathan Binkert
2007-06-20 08:14:11 -07:00
438ec924d6
Don't go over 80 chars per line
Nathan Binkert
2007-06-20 08:12:10 -07:00
a68ddf685c
Make memory instructions work better, add more macroop implementations, add an lea microop, move EmulEnv into it's own .cc and .hh.
Gabe Black
2007-06-20 15:02:50 +00:00
5c48a05813
Merge zizzer.eecs.umich.edu:/bk/newmem into doughnut.hpl.hp.com:/home/gblack/newmem-o3-micro
Gabe Black
2007-06-19 18:54:40 -07:00
d2ccf5e509
More faithfulness to what instructions should work in what modes, and added the MOVSXD instruction.
Gabe Black
2007-06-19 22:40:10 +00:00
cc796de962
Missed an "offset" to get rid of.
Gabe Black
2007-06-19 19:01:02 +00:00
ea70e6d6da
Make branches work by repopulating the predecoder every time through. This is probably fine as far as the predecoder goes, but the simple cpu might want to not refetch something it already has. That reintroduces the self modifying code problem though.
Gabe Black
2007-06-19 18:17:34 +00:00
d496492793
Make instructions that are illegal in 64 bit mode not do the wrong thing in 64 bit mode. Also add in more versions of PUSH and POP, and a version of near CALL.
Gabe Black
2007-06-19 17:56:06 +00:00
4486762a85
Make an error message a little more descriptive.
Gabe Black
2007-06-19 17:53:10 +00:00
ebe4d05f70
Renovate the "fault" microop implementation.
Gabe Black
2007-06-19 14:50:35 +00:00
056cfc345b
Get rid of the commented out versions of macroops which have been reimplemented. The comments are basically functioning like a todo list.
Gabe Black
2007-06-19 14:26:42 +00:00
053c715f21
Merge zizzer.eecs.umich.edu:/bk/newmem into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86
Gabe Black
2007-06-19 14:18:46 +00:00
6e286cddfa
Get rid of the immediate and displacement components of the EmulEnv struct and use them directly out of the instruction. The extra copies are conceptually realistic but are just innefficient as implemented. Also don't use the zeroeth microcode register for general storage since it's now the zero register, and implement a load and a store microops.
Gabe Black
2007-06-19 14:18:25 +00:00
8caef7d25a
Add a stack size bitfield and expose the mode component of the ExtMachInst.
Gabe Black
2007-06-19 14:15:21 +00:00
1012fd4427
Add a function to print out segment names.
Gabe Black
2007-06-19 14:14:17 +00:00
2d08ab0cc2
fix bug in timing cpu. getTime() is the time the requset was created, not the time it was repsonded to. In timing mode the time it was responded to is curTick. Doesn't change the results, but it does make implementation of nextCycle() more difficult
Ali Saidi
2007-06-18 18:11:07 -04:00
7994fa9431
Merge zizzer.eecs.umich.edu:/bk/newmem into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86
Gabe Black
2007-06-18 14:16:08 +00:00
4ae284282e
Get rid of unnecessary output.
Gabe Black
2007-06-18 14:15:47 +00:00
6c12577937
Add in incomplete pick and merge functions which read and write pieces of registers, and fill out microcode disassembly.
Gabe Black
2007-06-18 14:15:00 +00:00
d69a763833
Merge vm1.(none):/home/stever/bk/newmem-head into vm1.(none):/home/stever/bk/newmem-cache2
Steve Reinhardt
2007-06-17 17:30:24 -07:00
35cf19d441
More major reorg of cache. Seems to work for atomic mode now, timing mode still broken.
Steve Reinhardt
2007-06-17 17:27:53 -07:00
c2a97387cf
since the o3 cpu perlbmk regression doesn't work, just delete it. Perhaps the regression will terminate now
Ali Saidi
2007-06-17 14:01:01 -04:00
f4babe1082
memtest.cc: No need to initialize memory contents; should come up as 0.
Steve Reinhardt
2007-06-16 14:05:05 -07:00
3ceb0a46ae
Add in some microregs.
Gabe Black
2007-06-14 20:52:25 +00:00
dad3058224
Sign extend byte immediates as well. There might need to be a fancier system in place to handle this in the future.
Gabe Black
2007-06-14 20:52:24 +00:00
7213944110
Fix limm.
Gabe Black
2007-06-14 20:52:23 +00:00
866cc8214b
Implement a handful more instructions and differentiate macroops based on the operand types they expect.
Gabe Black
2007-06-14 20:52:22 +00:00
a8f65b18bc
Move the high byte register indices to the right place.
Gabe Black
2007-06-14 20:52:21 +00:00
7219b6edd9
Merge zizzer.eecs.umich.edu:/bk/newmem into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86
Gabe Black
2007-06-14 20:52:20 +00:00
5b5570e0bf
Modified instruction decode method. Make code compatible with new decode method.
Vincentius Robby
2007-06-14 16:52:19 -04:00
cb7934f052
Fix an assert to allow rounding mode 0.
Gabe Black
2007-06-14 13:53:27 +00:00
752199f827
Make POP special case its dataSize to default to 64 bits in 64 bit mode.
Gabe Black
2007-06-14 13:52:08 +00:00
cd3fee1b81
Put the mode in the ExtMachInst.
Gabe Black
2007-06-14 13:50:58 +00:00
640ab1d2e7
Get rid of an unnecessary debug statement.
Gabe Black
2007-06-14 13:49:23 +00:00
20ec77fdc1
Get rid of some debug output and let macroops set headers in their constructor. The intention is to allow them to modify the emulation environment struct before it's used to construct its microops.
Gabe Black
2007-06-14 13:47:52 +00:00
d265c9951f
Fix up param regular expression to not duplicated the escaping \ and to pair up \s correctly.
Gabe Black
2007-06-14 13:45:37 +00:00
6641423a0b
A fix for SPARC_FS compilation.
Gabe Black
2007-06-14 13:27:08 +00:00
cd8f604cc9
Seperate the pc-pc and the pc of the incoming bytes, and get rid of the "moreBytes" which just takes a MachInst.
Gabe Black
2007-06-13 20:09:03 +00:00
5fd567425d
Fix the operand type tag parser to recognize multi character register names.
Gabe Black
2007-06-13 18:08:06 +00:00
715efab3b9
Partially implement "POP"
Gabe Black
2007-06-13 18:06:34 +00:00
fd45c4a58f
Move load/store microops into their own file. They still don't do anything, though.
Gabe Black
2007-06-13 18:05:08 +00:00
dc13db8578
Fix the immediate version of register operations, and get their name to show up correctly.
Gabe Black
2007-06-13 18:01:23 +00:00
4e7786d971
Minor comment fix up.
Gabe Black
2007-06-12 17:35:11 +00:00
02732929e8
Merge zizzer.eecs.umich.edu:/bk/newmem into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86
Gabe Black
2007-06-12 17:19:14 +00:00
0d8d3f988f
Make use of some of the REX prefix.
Gabe Black
2007-06-12 16:47:10 +00:00
baf145e0f5
Reset the rex and legacy prefix components of the ExtMachInst as well.
Gabe Black
2007-06-12 16:46:04 +00:00
548b121c1c
Flesh out the bitfields for prefixes.
Gabe Black
2007-06-12 16:45:06 +00:00
ea3f7c9531
Add in MOV instructions.
Gabe Black
2007-06-12 16:31:42 +00:00
eb68c9986e
Fix up a comment that wasn't changed over to x86.
Gabe Black
2007-06-12 16:30:48 +00:00
2e9fa55f51
Get rid of unnecessary namespace prototype.
Gabe Black
2007-06-12 16:29:49 +00:00
7a52faa39b
Use objects to pass around output code, and fix/implement a few things.
Gabe Black
2007-06-12 16:25:47 +00:00
d0c5da2cd4
Add an address size bitfield to the isa description and the ExtMachInst
Gabe Black
2007-06-12 16:23:42 +00:00
4ad73abcfb
Add some dprintfs
Gabe Black
2007-06-12 16:22:35 +00:00
a7f3bbcfab
Make microOp vs microop and macroOp vs macroop capitilization consistent.
Gabe Black
2007-06-12 16:21:47 +00:00
1a3e668446
update for small parameter and statistics name changes
Nathan Binkert
2007-06-12 07:56:53 -07:00
125237d357
Rename enum from OpType to OpClass so it's consistent with the real thing. Also rename the null case to something that can be a C++ symbol.
Nathan Binkert
2007-06-11 23:10:58 -07:00
d14256f9ba
the cmd argument is supposed to be an array of parameters, not one string
Nathan Binkert
2007-06-10 13:57:48 -07:00
cd46796d5c
Add the -templatereduce option to swig to prepare for more templates. remove the old scanner and replace it with ours instead of just adding ours, this fixes some issues with dependency tracking.
Nathan Binkert
2007-06-10 13:54:59 -07:00
961f8382f6
Add a function to get a SimObject's memory mode and rework the set memory mode code to only go through the change if it is necessary
Nathan Binkert
2007-06-10 13:52:21 -07:00
fc4ab050b4
Add a startup function that will fast forward to the right clock edge using a divide in order to not loop forever after resuming from a checkpoint
Nathan Binkert
2007-06-09 23:01:47 -07:00
11f1c8dd3e
Use the right type
Nathan Binkert
2007-06-09 23:00:13 -07:00
9f75ac783b
only compile fenv.c if we're using fenv
Nathan Binkert
2007-06-09 22:59:33 -07:00
e9936a6250
More realistic parameters
Nathan Binkert
2007-06-09 22:43:08 -07:00
1493ceda8f
Fix another outdated comment.
Gabe Black
2007-06-08 18:41:58 +00:00
78910a7b3d
Adjust a few more comments.
Gabe Black
2007-06-08 17:41:23 +00:00
93707e2365
Get rid of a couple more unused files.
Gabe Black
2007-06-08 17:32:57 +00:00
b9c38660ef
Fix up a potentially misleading comment.
Gabe Black
2007-06-08 17:30:16 +00:00
57a8c32bea
Fix the formatting on a comment.
Gabe Black
2007-06-08 17:16:05 +00:00
038fa48990
Clean up where files are included, and get rid of some cruft.
Gabe Black
2007-06-08 17:14:39 +00:00
658df56bf3
Clean things up a little.
Gabe Black
2007-06-08 17:06:34 +00:00
f53b130382
Get rid of the old isa_parser file versions of the microcode definitions.
Gabe Black
2007-06-08 17:05:50 +00:00
5f0d82baeb
Merge zizzer.eecs.umich.edu:/bk/newmem into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86
Gabe Black
2007-06-08 16:13:45 +00:00
8bd213b3b8
Move the microcode assembly to a python package instead of isa_parser files. Also, the code is now a single string which runs through the microcode assembler rather than docstrings associated with classes named after each architectural level instruction.
Gabe Black
2007-06-08 16:13:20 +00:00
1f7ed5b7b4
Big changes to use the new microcode assembler.
Gabe Black
2007-06-08 16:09:43 +00:00
ce8f4c1f16
Fixed format arguments for XOR.
Gabe Black
2007-06-08 16:07:31 +00:00
2f194cc6f7
Add a bitfield to refer to the opSize member of the extMachInst.
Gabe Black
2007-06-08 16:06:22 +00:00
c5a946efea
Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem into zizzer.eecs.umich.edu:/tmp/newmem
Ali Saidi
2007-06-05 01:03:43 -04:00
85986e9dff
Clean up some of vincent's code and commit it Makes page table cache scheme actually work
Ali Saidi
2007-06-05 01:03:35 -04:00
dba02f703b
Make limm (load immediate) microop
Gabe Black
2007-06-04 19:53:06 +00:00
ddbc26c85e
Merge zizzer.eecs.umich.edu:/bk/newmem into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86
Gabe Black
2007-06-04 19:53:05 +00:00
42174babbb
don't be so aggressive with the tracing on #if
Ali Saidi
2007-06-04 15:53:04 -04:00
48133a0f04
fix SPARC....
Ali Saidi
2007-06-04 12:03:38 -04:00
41bc0fc5b2
Reworking x86's microcode system. This is a work in progress, and X86 doesn't compile.
Gabe Black
2007-06-04 15:59:20 +00:00