Commit Graph

  • 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