gem5.git
14 years agoX86: Implement a "sum of absolute differences" microop.
Gabe Black [Tue, 18 Aug 2009 03:15:16 +0000 (20:15 -0700)]
X86: Implement a "sum of absolute differences" microop.

14 years agoX86: Implement the media integer subtract instructions.
Gabe Black [Tue, 18 Aug 2009 03:15:15 +0000 (20:15 -0700)]
X86: Implement the media integer subtract instructions.

14 years agoX86: Implement an integer media subtract microop.
Gabe Black [Tue, 18 Aug 2009 03:15:15 +0000 (20:15 -0700)]
X86: Implement an integer media subtract microop.

14 years agoX86: Implement the integer media multiply instructions.
Gabe Black [Tue, 18 Aug 2009 03:15:15 +0000 (20:15 -0700)]
X86: Implement the integer media multiply instructions.

14 years agoX86: Implement a media integer multiply microop.
Gabe Black [Tue, 18 Aug 2009 03:15:15 +0000 (20:15 -0700)]
X86: Implement a media integer multiply microop.

14 years agoX86: Make larger blocks of instructions use the Inst format by default.
Gabe Black [Tue, 18 Aug 2009 03:04:03 +0000 (20:04 -0700)]
X86: Make larger blocks of instructions use the Inst format by default.

14 years agoX86: Implement the integer media max instructions.
Gabe Black [Tue, 18 Aug 2009 03:04:03 +0000 (20:04 -0700)]
X86: Implement the integer media max instructions.

14 years agoX86: Implement an integer media max microop.
Gabe Black [Tue, 18 Aug 2009 03:04:03 +0000 (20:04 -0700)]
X86: Implement an integer media max microop.

14 years agoX86: Implement the integer media min instructions.
Gabe Black [Tue, 18 Aug 2009 03:04:03 +0000 (20:04 -0700)]
X86: Implement the integer media min instructions.

14 years agoX86: Add a media integer min microop.
Gabe Black [Tue, 18 Aug 2009 03:04:02 +0000 (20:04 -0700)]
X86: Add a media integer min microop.

14 years agoX86: Implement the media integer addition instructions.
Gabe Black [Tue, 18 Aug 2009 03:04:02 +0000 (20:04 -0700)]
X86: Implement the media integer addition instructions.

14 years agoX86: Implement an integer media addition microop with optional saturation.
Gabe Black [Tue, 18 Aug 2009 03:04:02 +0000 (20:04 -0700)]
X86: Implement an integer media addition microop with optional saturation.

14 years agoX86: Implement the instructions that convert between forms of floating point.
Gabe Black [Tue, 18 Aug 2009 03:04:02 +0000 (20:04 -0700)]
X86: Implement the instructions that convert between forms of floating point.

14 years agoX86: Implement a media microop that converts between floating point data types.
Gabe Black [Tue, 18 Aug 2009 03:04:02 +0000 (20:04 -0700)]
X86: Implement a media microop that converts between floating point data types.

14 years agoX86: Implement the instructions that compare fp values and write masks as the result.
Gabe Black [Tue, 18 Aug 2009 03:04:02 +0000 (20:04 -0700)]
X86: Implement the instructions that compare fp values and write masks as the result.

14 years agoX86: Implement a microop that compares fp values and writes a mask as its result.
Gabe Black [Tue, 18 Aug 2009 03:04:02 +0000 (20:04 -0700)]
X86: Implement a microop that compares fp values and writes a mask as its result.

14 years agoX86: Implement the MOVDDUP instruction.
Gabe Black [Tue, 18 Aug 2009 01:50:29 +0000 (18:50 -0700)]
X86: Implement the MOVDDUP instruction.

14 years agoX86: Implement many of the media mov instructions.
Gabe Black [Tue, 18 Aug 2009 01:44:44 +0000 (18:44 -0700)]
X86: Implement many of the media mov instructions.

14 years agoX86: Implement the media instructions that convert integer values to floating point.
Gabe Black [Tue, 18 Aug 2009 01:41:27 +0000 (18:41 -0700)]
X86: Implement the media instructions that convert integer values to floating point.

14 years agoX86: Implement a media microop for converting integer values to floating point.
Gabe Black [Tue, 18 Aug 2009 01:41:25 +0000 (18:41 -0700)]
X86: Implement a media microop for converting integer values to floating point.

14 years agoX86: Implement the floating point media instructions.
Gabe Black [Tue, 18 Aug 2009 01:40:40 +0000 (18:40 -0700)]
X86: Implement the floating point media instructions.

14 years agoX86: Implement a floating point media divide microop.
Gabe Black [Tue, 18 Aug 2009 01:40:38 +0000 (18:40 -0700)]
X86: Implement a floating point media divide microop.

14 years agoX86: Implement the floating point media multiply instructions.
Gabe Black [Tue, 18 Aug 2009 01:38:53 +0000 (18:38 -0700)]
X86: Implement the floating point media multiply instructions.

14 years agoX86: Implement a floating point media multiply microop.
Gabe Black [Tue, 18 Aug 2009 01:38:51 +0000 (18:38 -0700)]
X86: Implement a floating point media multiply microop.

14 years agoX86: Implement the floating point media subtract instructions.
Gabe Black [Tue, 18 Aug 2009 01:36:20 +0000 (18:36 -0700)]
X86: Implement the floating point media subtract instructions.

14 years agoX86: Implement a media floating point subtract microop.
Gabe Black [Tue, 18 Aug 2009 01:36:18 +0000 (18:36 -0700)]
X86: Implement a media floating point subtract microop.

14 years agoX86: Implement the floating point media add instructions.
Gabe Black [Tue, 18 Aug 2009 01:35:06 +0000 (18:35 -0700)]
X86: Implement the floating point media add instructions.

14 years agoX86: Implement a floating point media add microop.
Gabe Black [Tue, 18 Aug 2009 01:35:04 +0000 (18:35 -0700)]
X86: Implement a floating point media add microop.

14 years agoX86: Implement the media sqrt instructions.
Gabe Black [Tue, 18 Aug 2009 01:34:19 +0000 (18:34 -0700)]
X86: Implement the media sqrt instructions.

14 years agoX86: Implement a media square root microop.
Gabe Black [Tue, 18 Aug 2009 01:34:16 +0000 (18:34 -0700)]
X86: Implement a media square root microop.

14 years agoX86: Implement the media floating point max instructions.
Gabe Black [Tue, 18 Aug 2009 01:33:28 +0000 (18:33 -0700)]
X86: Implement the media floating point max instructions.

14 years agoX86: Implement the floating point media max microop.
Gabe Black [Tue, 18 Aug 2009 01:33:25 +0000 (18:33 -0700)]
X86: Implement the floating point media max microop.

14 years agoX86: Implement the media floating point min instructions.
Gabe Black [Tue, 18 Aug 2009 01:32:12 +0000 (18:32 -0700)]
X86: Implement the media floating point min instructions.

14 years agoX86: Implement a floating point media min microop.
Gabe Black [Tue, 18 Aug 2009 01:32:09 +0000 (18:32 -0700)]
X86: Implement a floating point media min microop.

14 years agoX86: Implement the pack instructions.
Gabe Black [Tue, 18 Aug 2009 01:32:08 +0000 (18:32 -0700)]
X86: Implement the pack instructions.

14 years agoX86: Create a pack media microop.
Gabe Black [Tue, 18 Aug 2009 01:27:54 +0000 (18:27 -0700)]
X86: Create a pack media microop.

14 years agoX86: Rename sel to ext for media microops.
Gabe Black [Tue, 18 Aug 2009 01:27:44 +0000 (18:27 -0700)]
X86: Rename sel to ext for media microops.

14 years agoX86: Move the MMX version of MOVD into the simd64 directory.
Gabe Black [Tue, 18 Aug 2009 01:27:30 +0000 (18:27 -0700)]
X86: Move the MMX version of MOVD into the simd64 directory.

14 years agoX86: Implement the remaining unpack instructions.
Gabe Black [Tue, 18 Aug 2009 01:27:19 +0000 (18:27 -0700)]
X86: Implement the remaining unpack instructions.

14 years agoX86: Implement PANDN, ANDNPS, and ANDNPD.
Gabe Black [Tue, 18 Aug 2009 01:25:00 +0000 (18:25 -0700)]
X86: Implement PANDN, ANDNPS, and ANDNPD.

14 years agoX86: Implement a multimedia andn microop.
Gabe Black [Tue, 18 Aug 2009 01:24:58 +0000 (18:24 -0700)]
X86: Implement a multimedia andn microop.

14 years agoX86: Implement PAND, ANDPS, and ANDPD.
Gabe Black [Tue, 18 Aug 2009 01:24:18 +0000 (18:24 -0700)]
X86: Implement PAND, ANDPS, and ANDPD.

14 years agoX86: Implement a multimedia and microop.
Gabe Black [Tue, 18 Aug 2009 01:24:16 +0000 (18:24 -0700)]
X86: Implement a multimedia and microop.

14 years agoX86: Implement POR, ORPD and ORPS.
Gabe Black [Tue, 18 Aug 2009 01:23:33 +0000 (18:23 -0700)]
X86: Implement POR, ORPD and ORPS.

14 years agoX86: Implement a media or microop.
Gabe Black [Tue, 18 Aug 2009 01:23:30 +0000 (18:23 -0700)]
X86: Implement a media or microop.

14 years agoX86: Implement PXOR.
Gabe Black [Tue, 18 Aug 2009 01:23:04 +0000 (18:23 -0700)]
X86: Implement PXOR.

14 years agoX86: (Re)implement XORPS and XORPD.
Gabe Black [Tue, 18 Aug 2009 01:22:37 +0000 (18:22 -0700)]
X86: (Re)implement XORPS and XORPD.

14 years agoX86: Implement a media xor microop.
Gabe Black [Tue, 18 Aug 2009 01:22:33 +0000 (18:22 -0700)]
X86: Implement a media xor microop.

14 years agoX86: Implement PUNPCKLQDQ.
Gabe Black [Tue, 18 Aug 2009 01:21:46 +0000 (18:21 -0700)]
X86: Implement PUNPCKLQDQ.

14 years agoX86: Implement PUNPCKHQDQ.
Gabe Black [Tue, 18 Aug 2009 01:21:09 +0000 (18:21 -0700)]
X86: Implement PUNPCKHQDQ.

14 years agoX86: Implement PUNPCKHDQ.
Gabe Black [Tue, 18 Aug 2009 01:20:50 +0000 (18:20 -0700)]
X86: Implement PUNPCKHDQ.

14 years agoX86: Implement PUNPCKHWD.
Gabe Black [Tue, 18 Aug 2009 01:19:43 +0000 (18:19 -0700)]
X86: Implement PUNPCKHWD.

14 years agoX86: Implement PUNPCKHBW.
Gabe Black [Tue, 18 Aug 2009 01:19:19 +0000 (18:19 -0700)]
X86: Implement PUNPCKHBW.

14 years agoX86: Implement PUNPCKLDQ.
Gabe Black [Tue, 18 Aug 2009 01:19:01 +0000 (18:19 -0700)]
X86: Implement PUNPCKLDQ.

14 years agoX86: Implement PUNPCKLWD.
Gabe Black [Tue, 18 Aug 2009 01:18:40 +0000 (18:18 -0700)]
X86: Implement PUNPCKLWD.

14 years agoX86: Implement the versions of PUNPCKLBW that use XMM registers.
Gabe Black [Tue, 18 Aug 2009 01:18:19 +0000 (18:18 -0700)]
X86: Implement the versions of PUNPCKLBW that use XMM registers.

14 years agoX86: Implement the MOVQ instruction.
Gabe Black [Tue, 18 Aug 2009 01:17:29 +0000 (18:17 -0700)]
X86: Implement the MOVQ instruction.

14 years agoX86: Implement the lfpimm microop.
Gabe Black [Tue, 18 Aug 2009 01:17:26 +0000 (18:17 -0700)]
X86: Implement the lfpimm microop.

14 years agoX86: Implement the versions of MOVD that have an MMX source.
Gabe Black [Tue, 18 Aug 2009 01:16:07 +0000 (18:16 -0700)]
X86: Implement the versions of MOVD that have an MMX source.

14 years agoX86: Implement the versions of PUNPCKLBW that use MMX registers.
Gabe Black [Tue, 18 Aug 2009 01:15:42 +0000 (18:15 -0700)]
X86: Implement the versions of PUNPCKLBW that use MMX registers.

14 years agoX86: Implement an unpack microop.
Gabe Black [Tue, 18 Aug 2009 01:15:39 +0000 (18:15 -0700)]
X86: Implement an unpack microop.

14 years agoX86: Implement the versions of MOVD that have an MMX destination.
Gabe Black [Tue, 18 Aug 2009 01:15:24 +0000 (18:15 -0700)]
X86: Implement the versions of MOVD that have an MMX destination.

14 years agoX86: Ignore the size part of XMM/MMX operands. The instructions know what they want.
Gabe Black [Tue, 18 Aug 2009 01:15:23 +0000 (18:15 -0700)]
X86: Ignore the size part of XMM/MMX operands. The instructions know what they want.

14 years agoX86: Use suffixes to differentiate XMM/MMX/GPR operands.
Gabe Black [Tue, 18 Aug 2009 01:15:21 +0000 (18:15 -0700)]
X86: Use suffixes to differentiate XMM/MMX/GPR operands.

14 years agoX86: Add microcode assembler symbols for mmx registers.
Gabe Black [Tue, 18 Aug 2009 01:15:19 +0000 (18:15 -0700)]
X86: Add microcode assembler symbols for mmx registers.

14 years agoX86: Set up a media microop framework and create mov2int and mov2fp microops.
Gabe Black [Tue, 18 Aug 2009 01:15:18 +0000 (18:15 -0700)]
X86: Set up a media microop framework and create mov2int and mov2fp microops.

14 years agoX86: Create base classes for use with media/SIMD microops.
Gabe Black [Tue, 18 Aug 2009 01:15:16 +0000 (18:15 -0700)]
X86: Create base classes for use with media/SIMD microops.

14 years agoX86: Turn the DIV and IDIV microcode into templates and generate all the variants.
Gabe Black [Tue, 18 Aug 2009 01:15:14 +0000 (18:15 -0700)]
X86: Turn the DIV and IDIV microcode into templates and generate all the variants.

14 years agoX86: Remove some FIXMEs from IDIV that have been fixed.
Gabe Black [Tue, 18 Aug 2009 01:15:13 +0000 (18:15 -0700)]
X86: Remove some FIXMEs from IDIV that have been fixed.

14 years agoX86: Turn the CMPXCHG8B microcode into a template and generate each variant.
Gabe Black [Tue, 18 Aug 2009 01:15:00 +0000 (18:15 -0700)]
X86: Turn the CMPXCHG8B microcode into a template and generate each variant.

14 years agoMerge with head.
Gabe Black [Mon, 17 Aug 2009 07:21:57 +0000 (00:21 -0700)]
Merge with head.

14 years agoX86: Fix a bug introduced to IDIV in a recent attempt to fix another bug.
Gabe Black [Mon, 17 Aug 2009 07:20:03 +0000 (00:20 -0700)]
X86: Fix a bug introduced to IDIV in a recent attempt to fix another bug.

14 years agocode_formatter: Add a python class for writing code generator templates
Nathan Binkert [Sun, 16 Aug 2009 20:40:03 +0000 (13:40 -0700)]
code_formatter: Add a python class for writing code generator templates

14 years agoply: add a base class called Grammar that encapsulates a ply grammar
Nathan Binkert [Sun, 16 Aug 2009 20:40:01 +0000 (13:40 -0700)]
ply: add a base class called Grammar that encapsulates a ply grammar

14 years agoorderdict: Use DictMixin and add orderdict to m5.util
Nathan Binkert [Sun, 16 Aug 2009 20:40:00 +0000 (13:40 -0700)]
orderdict: Use DictMixin and add orderdict to m5.util

14 years agopython: Make it possible to import the parts of m5 that are pure python
Nathan Binkert [Sun, 16 Aug 2009 20:39:59 +0000 (13:39 -0700)]
python: Make it possible to import the parts of m5 that are pure python

14 years agoply: update PLY to version 3.2
Nathan Binkert [Sun, 16 Aug 2009 20:39:58 +0000 (13:39 -0700)]
ply: update PLY to version 3.2

14 years agoAutomated merge with ssh://hg@m5sim.org/m5
Derek Hower [Thu, 13 Aug 2009 15:37:37 +0000 (10:37 -0500)]
Automated merge with ssh://hg@m5sim.org/m5

14 years agoruby: config bugfix
Derek Hower [Thu, 13 Aug 2009 15:37:09 +0000 (10:37 -0500)]
ruby: config bugfix

14 years agoruby/network data_msg_size bug fix with updated stats
Tushar Krishna [Tue, 11 Aug 2009 22:19:04 +0000 (15:19 -0700)]
ruby/network data_msg_size bug fix with updated stats

14 years agomerged Tushar's bug fix with public repository changes
Brad Beckmann [Tue, 11 Aug 2009 19:22:41 +0000 (12:22 -0700)]
merged Tushar's bug fix with public repository changes

14 years agoAutomated merge with ssh://hg@m5sim.org/m5
Derek Hower [Sun, 9 Aug 2009 18:59:14 +0000 (13:59 -0500)]
Automated merge with ssh://hg@m5sim.org/m5

14 years agoprotocol: added recycle actions to MOESI DMA events
Derek Hower [Sun, 9 Aug 2009 18:58:40 +0000 (13:58 -0500)]
protocol: added recycle actions to MOESI DMA events

14 years agoX86: Update the stats on the ruby x86 regressions for the new CMOVcc implementation.
Gabe Black [Sun, 9 Aug 2009 11:01:56 +0000 (04:01 -0700)]
X86: Update the stats on the ruby x86 regressions for the new CMOVcc implementation.

14 years agoX86: Implement the CMPXCHG8B/CMPXCHG16B instruction.
Gabe Black [Sun, 9 Aug 2009 08:01:41 +0000 (01:01 -0700)]
X86: Implement the CMPXCHG8B/CMPXCHG16B instruction.

14 years agoX86: Don't clobber the original dividend when doing signed divide.
Gabe Black [Sun, 9 Aug 2009 08:01:18 +0000 (01:01 -0700)]
X86: Don't clobber the original dividend when doing signed divide.

14 years agoX86: Decode byte sized singed divide as byte sized.
Gabe Black [Sun, 9 Aug 2009 08:00:47 +0000 (01:00 -0700)]
X86: Decode byte sized singed divide as byte sized.

14 years agoX86: Update the stats for the slightly lengthened cmov.
Gabe Black [Sun, 9 Aug 2009 00:23:25 +0000 (17:23 -0700)]
X86: Update the stats for the slightly lengthened cmov.

14 years agoX86: Make not taken conditional moves leave the destination alone. Adjust CMOVcc.
Gabe Black [Sun, 9 Aug 2009 00:23:19 +0000 (17:23 -0700)]
X86: Make not taken conditional moves leave the destination alone. Adjust CMOVcc.
The manuals from both AMD and Intel say that when writing to a 32 bit
destination in 64 bit mode, the upper 32 bits of the register are filled with
zeros. They also both say that the CMOV instructions leave their destination
alone when their condition fails. Unfortunately, it seems that CMOV will zero
extend its destination register whether or not it was supposed to actually do
a move on both platforms. This seems to be the only case where this happens,
but it would be hard to say for sure.

14 years agobug fix for data_msg_size in network/Network.cc
Tushar Krishna [Fri, 7 Aug 2009 20:59:40 +0000 (13:59 -0700)]
bug fix for data_msg_size in network/Network.cc

14 years agoX86: (Re)Implemented SHRD.
Gabe Black [Fri, 7 Aug 2009 17:13:33 +0000 (10:13 -0700)]
X86: (Re)Implemented SHRD.

14 years agoX86: Implement SHLD.
Gabe Black [Fri, 7 Aug 2009 17:13:24 +0000 (10:13 -0700)]
X86: Implement SHLD.

14 years agoX86: Implement shift right/left double microops.
Gabe Black [Fri, 7 Aug 2009 17:13:20 +0000 (10:13 -0700)]
X86: Implement shift right/left double microops.
This is my best guess as far as what these should do. Other existing microops
use implicit registers, mul1s and mul1u for instance, so this should be ok.
The microop that loads the implicit DoubleBits register would fall into one
of the microop slots for moving to/from special registers.

14 years agoX86: Make the qaud width bswap instruction handle the fact that 32 bit operations...
Gabe Black [Fri, 7 Aug 2009 17:12:58 +0000 (10:12 -0700)]
X86: Make the qaud width bswap instruction handle the fact that 32 bit operations zero extend.

14 years agoX86: Use the right field when using legacy prefixes to distinguish instructions.
Gabe Black [Fri, 7 Aug 2009 17:12:52 +0000 (10:12 -0700)]
X86: Use the right field when using legacy prefixes to distinguish instructions.

14 years agoX86: Don't truncate the immediate parameter for the ENTER instruction.
Gabe Black [Fri, 7 Aug 2009 17:12:29 +0000 (10:12 -0700)]
X86: Don't truncate the immediate parameter for the ENTER instruction.

14 years agoX86: Adjust the various sizes used for the enter and leave instructions.
Gabe Black [Fri, 7 Aug 2009 04:44:42 +0000 (21:44 -0700)]
X86: Adjust the various sizes used for the enter and leave instructions.

14 years agoX86: Make scas compare its operands in the right order.
Gabe Black [Fri, 7 Aug 2009 04:44:41 +0000 (21:44 -0700)]
X86: Make scas compare its operands in the right order.

14 years agoX86: Fix a copy/paste error for cmovnp.
Gabe Black [Fri, 7 Aug 2009 04:44:40 +0000 (21:44 -0700)]
X86: Fix a copy/paste error for cmovnp.

14 years agofixed MOESI_CMP_directory bug
Derek Hower [Thu, 6 Aug 2009 08:41:28 +0000 (03:41 -0500)]
fixed MOESI_CMP_directory bug