changeset a9e8668557bf in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=a9e8668557bf
description:
        X86: Implement the bswap instruction.

diffstat:

2 files changed, 24 insertions(+), 2 deletions(-)
src/arch/x86/isa/decoder/two_byte_opcodes.isa                               |   
 6 ++-
src/arch/x86/isa/insts/general_purpose/data_conversion/endian_conversion.py |   
20 +++++++++-

diffs (46 lines):

diff -r 624566640d7c -r a9e8668557bf 
src/arch/x86/isa/decoder/two_byte_opcodes.isa
--- a/src/arch/x86/isa/decoder/two_byte_opcodes.isa     Sun Jan 25 20:32:26 
2009 -0800
+++ b/src/arch/x86/isa/decoder/two_byte_opcodes.isa     Sun Jan 25 20:32:43 
2009 -0800
@@ -915,7 +915,11 @@
                     default: Inst::UD2();
                 }
             }
-            0x19: bswap_B();
+            0x19: decode OPSIZE {
+                4: Inst::BSWAP_D(Bd);
+                8: Inst::BSWAP_Q(Bq);
+                default: Inst::UD2();
+            }
             0x1A: decode LEGACY_DECODEVAL {
                 // no prefix
                 0x0: decode OPCODE_OP_BOTTOM3 {
diff -r 624566640d7c -r a9e8668557bf 
src/arch/x86/isa/insts/general_purpose/data_conversion/endian_conversion.py
--- 
a/src/arch/x86/isa/insts/general_purpose/data_conversion/endian_conversion.py   
    Sun Jan 25 20:32:26 2009 -0800
+++ 
b/src/arch/x86/isa/insts/general_purpose/data_conversion/endian_conversion.py   
    Sun Jan 25 20:32:43 2009 -0800
@@ -53,7 +53,25 @@
 #
 # Authors: Gabe Black
 
-microcode = ""
+microcode = '''
+def macroop BSWAP_D_R
+{
+    roli reg, reg, 8, dataSize=2
+    roli reg, reg, 16, dataSize=4
+    roli reg, reg, 8, dataSize=2
+};
+
+def macroop BSWAP_Q_R
+{
+    roli reg, reg, 8, dataSize=2
+    roli reg, reg, 16, dataSize=4
+    roli reg, reg, 8, dataSize=2
+    roli reg, reg, 32, dataSize=8
+    roli reg, reg, 8, dataSize=2
+    roli reg, reg, 16, dataSize=4
+    roli reg, reg, 8, dataSize=2
+};
+'''
 #let {{
 #    class BSWAP(Inst):
 #       "GenFault ${new UnimpInstFault}"
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to