You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by gs...@apache.org on 2007/12/18 16:29:20 UTC

svn commit: r605233 - in /harmony/enhanced/drlvm/trunk/vm/port/src/encoder/ia32_em64t: enc_defs.h enc_tabl.cpp

Author: gshimansky
Date: Tue Dec 18 07:29:18 2007
New Revision: 605233

URL: http://svn.apache.org/viewvc?rev=605233&view=rev
Log:
Applied patch from HARMONY-5321
[drlvm][NCAI][encoder] JVMTI disassembler does not understand CMC opcode and D0/D1 shift opcodes


Modified:
    harmony/enhanced/drlvm/trunk/vm/port/src/encoder/ia32_em64t/enc_defs.h
    harmony/enhanced/drlvm/trunk/vm/port/src/encoder/ia32_em64t/enc_tabl.cpp

Modified: harmony/enhanced/drlvm/trunk/vm/port/src/encoder/ia32_em64t/enc_defs.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/port/src/encoder/ia32_em64t/enc_defs.h?rev=605233&r1=605232&r2=605233&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/port/src/encoder/ia32_em64t/enc_defs.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/port/src/encoder/ia32_em64t/enc_defs.h Tue Dec 18 07:29:18 2007
@@ -413,6 +413,7 @@
 Mnemonic_BSR,                           // Bit scan reverse
 
 Mnemonic_CALL,                          // Call Procedure
+Mnemonic_CMC,                           // Complement Carry Flag
 Mnemonic_CWD, Mnemonic_CDQ=Mnemonic_CWD,// Convert Word to Doubleword/Convert Doubleword to Qua T dword
 Mnemonic_CMOVcc,                        // Conditional Move
     CCM(CMOV,O),

Modified: harmony/enhanced/drlvm/trunk/vm/port/src/encoder/ia32_em64t/enc_tabl.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/port/src/encoder/ia32_em64t/enc_tabl.cpp?rev=605233&r1=605232&r2=605233&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/port/src/encoder/ia32_em64t/enc_tabl.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/port/src/encoder/ia32_em64t/enc_tabl.cpp Tue Dec 18 07:29:18 2007
@@ -474,6 +474,12 @@
 END_OPCODES()
 END_MNEMONIC()
 
+BEGIN_MNEMONIC(CMC, MF_USES_FLAGS|MF_AFFECTS_FLAGS, N)
+BEGIN_OPCODES()
+    {OpcodeInfo::decoder,     {0xF5},         {},     N },
+END_OPCODES()
+END_MNEMONIC()
+
 //TODO: Workaround. Actually, it's D_DU, but Jitrino's CG thinks it's D_U
 BEGIN_MNEMONIC(CDQ, MF_NONE, D_U )
 BEGIN_OPCODES()
@@ -1250,16 +1256,18 @@
 #define DEFINE_SHIFT_MNEMONIC(nam, slash_num, flags) \
 BEGIN_MNEMONIC(nam, flags, DU_U) \
 BEGIN_OPCODES()\
-/*  {OpcodeInfo::all,   {0xD0, slash_num},              {r_m8,  const_1},   DU_U },*/\
+    /* D0 & D1 opcodes are added w/o 2nd operand (1) because */\
+    /* they are used for decoding only so only instruction length is needed */\
+    {OpcodeInfo::decoder, {0xD0, slash_num},            {r_m8/*,const_1*/},   DU },\
     {OpcodeInfo::all,   {0xD2, slash_num},              {r_m8,  CL},        DU_U },\
     {OpcodeInfo::all,   {0xC0, slash_num, ib},          {r_m8,  imm8},      DU_U },\
 \
-/*  {OpcodeInfo::all,   {Size16, 0xD1, slash_num},      {r_m16, const_1},   DU_U },*/\
+    {OpcodeInfo::decoder, {Size16, 0xD1, slash_num},    {r_m16/*,const_1*/},  DU },\
     {OpcodeInfo::all,   {Size16, 0xD3, slash_num},      {r_m16, CL},        DU_U },\
     {OpcodeInfo::all,   {Size16, 0xC1, slash_num, ib},  {r_m16, imm8 },     DU_U },\
 \
-/*  {OpcodeInfo::all,   {0xD1, slash_num},              {r_m32, const_1},   DU_U },*/\
-/*  {OpcodeInfo::em64t, {REX_W, 0xD1, slash_num},       {r_m64, const_1},   DU_U },*/\
+    {OpcodeInfo::decoder,   {0xD1, slash_num},              {r_m32/*,const_1*/}, DU },\
+    {OpcodeInfo::decoder64, {REX_W, 0xD1, slash_num},       {r_m64/*,const_1*/}, DU },\
 \
     {OpcodeInfo::all,   {0xD3, slash_num},              {r_m32, CL},        DU_U },\
     {OpcodeInfo::em64t, {REX_W, 0xD3, slash_num},       {r_m64, CL},        DU_U },\