You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by hi...@apache.org on 2010/06/07 09:47:12 UTC

svn commit: r952128 [2/3] - in /harmony/enhanced/java/trunk/drlvm: make/vm/ vm/jitrino/config/em64t/ vm/jitrino/config/ia32/ vm/jitrino/src/codegenerator/ vm/jitrino/src/codegenerator/ia32/ vm/jitrino/src/jet/ vm/jitrino/src/optimizer/ vm/jitrino/src/o...

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/IRBuilder.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/IRBuilder.cpp?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/IRBuilder.cpp (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/IRBuilder.cpp Mon Jun  7 07:47:11 2010
@@ -885,20 +885,6 @@ IRBuilder::genXor(Type* dstType, Opnd* s
     return dst;
 }
 Opnd*
-IRBuilder::genAndNot(Type* dstType, Opnd* src1, Opnd* src2) {
-    src1 = propagateCopy(src1);
-    src2 = propagateCopy(src2);
-    Opnd* dst = lookupHash(Op_AndNot, src1, src2);
-    if (dst) return dst;
-
-    if (!dst) {
-        dst = createOpnd(dstType);
-        appendInst(instFactory->makeAndNot(dst, src1, src2));
-    }
-    insertHash(Op_AndNot, src1, src2, dst->getInst());
-    return dst;
-}
-Opnd*
 IRBuilder::genNot(Type* dstType, Opnd* src) {
     src = propagateCopy(src);
     Opnd* dst = lookupHash(Op_Not, src);
@@ -3247,226 +3233,6 @@ IRBuilder::genTauCheckFinite(Opnd* src) 
     return dst;
 }
 
-Opnd*
-IRBuilder::genVecAddSub (Type* dstType, Modifier mod, Opnd* src1, Opnd* src2) {
-    src1 = propagateCopy (src1);
-    src2 = propagateCopy (src2);
-
-    Operation operation (Op_VecAddSub, dstType->tag, mod);
-    U_32 hashcode = operation.encodeForHashing ();
-    Opnd* dst = lookupHash (hashcode, src1, src2);
-
-    if (dst) return dst;
-
-    if (!dst) {
-        dst = createOpnd (dstType);
-        Inst *newi = instFactory->makeVecAddSub (dst, src1, src2);
-        appendInst (newi);
-    }
-
-    insertHash (hashcode, src1, src2, dst->getInst ());
-    return dst;
-}
-
-Opnd*
-IRBuilder::genVecHadd (Type* dstType, Modifier mod, Opnd* src1, Opnd* src2) {
-    src1 = propagateCopy (src1);
-    src2 = propagateCopy (src2);
-
-    Operation operation (Op_VecHadd, dstType->tag, mod);
-    U_32 hashcode = operation.encodeForHashing ();
-    Opnd* dst = lookupHash (hashcode, src1, src2);
-
-    if (dst) return dst;
-
-    if (!dst) {
-        dst = createOpnd (dstType);
-        Inst *newi = instFactory->makeVecHadd (dst, src1, src2);
-        appendInst (newi);
-    }
-
-    insertHash (hashcode, src1, src2, dst->getInst ());
-    return dst;
-}
-
-Opnd*
-IRBuilder::genVecHsub (Type* dstType, Modifier mod, Opnd* src1, Opnd* src2) {
-    src1 = propagateCopy (src1);
-    src2 = propagateCopy (src2);
-
-    Operation operation (Op_VecHsub, dstType->tag, mod);
-    U_32 hashcode = operation.encodeForHashing ();
-    Opnd* dst = lookupHash (hashcode, src1, src2);
-
-    if (dst) return dst;
-
-    if (!dst) {
-        dst = createOpnd (dstType);
-        Inst *newi = instFactory->makeVecHsub (dst, src1, src2);
-        appendInst (newi);
-    }
-
-    insertHash (hashcode, src1, src2, dst->getInst ());
-    return dst;
-}
-
-Opnd*
-IRBuilder::genMaxVec (Type* dstType, Opnd* src1, Opnd* src2) {
-    src1 = propagateCopy (src1);
-    src2 = propagateCopy (src2);
-    Operation operation (Op_Max, dstType->tag, Modifier ());
-    U_32 hashcode = operation.encodeForHashing ();
-    Opnd* dst = lookupHash (hashcode, src1, src2);
-
-    if (dst) return dst;
-        
-    if (!dst) {
-        dst = createOpnd (dstType);
-        appendInst (instFactory->makeMax (dst, src1, src2));
-    }
-
-    insertHash (hashcode, src1, src2, dst->getInst ());
-    return dst;
-}
-
-Opnd*
-IRBuilder::genMinVec (Type* dstType, Opnd* src1, Opnd* src2) {
-    src1 = propagateCopy (src1);
-    src2 = propagateCopy (src2);
-    Operation operation (Op_Min, dstType->tag, Modifier ());
-    U_32 hashcode = operation.encodeForHashing ();
-    Opnd* dst = lookupHash (hashcode, src1, src2);
-
-    if (dst) return dst;
-        
-    if (!dst) {
-        dst = createOpnd (dstType);
-        appendInst (instFactory->makeMin (dst, src1, src2));
-    }
-
-    insertHash (hashcode, src1, src2, dst->getInst ());
-    return dst;
-}
-
-Opnd*
-IRBuilder::genAbsVec (Type* dstType, Opnd* src1) {
-    src1 = propagateCopy (src1);
-    Operation operation (Op_Abs, dstType->tag, Modifier ());
-    U_32 hashcode = operation.encodeForHashing ();
-    Opnd* dst = lookupHash (hashcode, src1);
-
-    if (dst) return dst;
-        
-    if (!dst) {
-        dst = createOpnd (dstType);
-        appendInst (instFactory->makeAbs (dst, src1));
-    }
-
-    insertHash (hashcode, src1, dst->getInst ());
-    return dst;
-}
-
-Opnd*
-IRBuilder::genVecShuffle (Type* dstType, Modifier mod, Opnd* src1, Opnd* src2, Opnd* src3) {
-    src1 = propagateCopy (src1);
-    src2 = propagateCopy (src2);
-    src3 = propagateCopy (src3);
-
-    Operation operation (Op_VecShuffle, dstType->tag, mod);
-    U_32 hashcode = operation.encodeForHashing ();
-    Opnd* dst = lookupHash (hashcode, src1, src2, src3);
-
-    if (dst) return dst;
-
-    if (!dst) {
-        dst = createOpnd (dstType);
-        Inst *newi = instFactory->makeVecShuffle (dst, src1, src2, src3);
-        appendInst (newi);
-    }
-
-    insertHash (hashcode, src1, src2, src3, dst->getInst ());
-    return dst;
-}
-
-Opnd*
-IRBuilder::genVecExtract (Type* dstType, Modifier mod, Opnd* src1, Opnd* src2) {
-    src1 = propagateCopy (src1);
-    src2 = propagateCopy (src2);
-
-    Operation operation (Op_VecExtract, dstType->tag, mod);
-    U_32 hashcode = operation.encodeForHashing ();
-    Opnd* dst = lookupHash (hashcode, src1, src2);
-
-    if (dst) return dst;
-
-    if (!dst) {
-        dst = createOpnd (dstType);
-        Inst *newi = instFactory->makeVecExtract (dst, src1, src2);
-        appendInst (newi);
-    }
-
-    insertHash (hashcode, src1, src2, dst->getInst ());
-    return dst;
-}
-
-Opnd*
-IRBuilder::genVecPackScalars (Type* dstType, Modifier mod, U_32 numOpnds, Opnd **opnds) {
-    Opnd* dst = createOpnd (dstType);
-    Inst *newi = instFactory->makeVecPackScalars (dst, numOpnds, opnds);
-    appendInst (newi);
-    return dst;
-}
-
-Opnd*
-IRBuilder::genVecInterleaveHigh (Type* dstType, Modifier mod, Opnd* src1, Opnd* src2) {
-    src1 = propagateCopy (src1);
-    src2 = propagateCopy (src2);
-
-    Operation operation (Op_VecInterleaveHigh, dstType->tag, mod);
-    U_32 hashcode = operation.encodeForHashing ();
-    Opnd* dst = lookupHash (hashcode, src1, src2);
-
-    if (dst) return dst;
-
-    if (!dst) {
-        dst = createOpnd (dstType);
-        Inst *newi = instFactory->makeVecInterleaveHigh (dst, src1, src2);
-        appendInst (newi);
-    }
-
-    insertHash (hashcode, src1, src2, dst->getInst ());
-    return dst;
-}
-
-Opnd*
-IRBuilder::genVecInterleaveLow (Type* dstType, Modifier mod, Opnd* src1, Opnd* src2) {
-    src1 = propagateCopy (src1);
-    src2 = propagateCopy (src2);
-
-    Operation operation (Op_VecInterleaveLow, dstType->tag, mod);
-    U_32 hashcode = operation.encodeForHashing ();
-    Opnd* dst = lookupHash (hashcode, src1, src2);
-
-    if (dst) return dst;
-
-    if (!dst) {
-        dst = createOpnd (dstType);
-        Inst *newi = instFactory->makeVecInterleaveLow (dst, src1, src2);
-        appendInst (newi);
-    }
-
-    insertHash (hashcode, src1, src2, dst->getInst ());
-    return dst;
-}
-
-Opnd*
-IRBuilder::genVecCmpStr (Type* dstType, U_32 numOpnds, Opnd **opnds) {
-    Opnd* dst = createOpnd (dstType);
-    Inst *newi = instFactory->makeVecCmpStr (dst, numOpnds, opnds);
-    appendInst (newi);
-    return dst;
-}
-
 //-----------------------------------------------------------------------------
 //
 // Methods for CSE hashing

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/IRBuilder.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/IRBuilder.h?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/IRBuilder.h (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/IRBuilder.h Mon Jun  7 07:47:11 2010
@@ -101,7 +101,6 @@ public:
     Opnd* genAnd(Type* dstType, Opnd* src1, Opnd* src2); // TR //SI
     Opnd* genOr(Type* dstType, Opnd* src1, Opnd* src2);//TR //SI
     Opnd* genXor(Type* dstType, Opnd* src1, Opnd* src2);//TR //SI
-    Opnd* genAndNot(Type* dstType, Opnd* src1, Opnd* src2); // TR //SI
     Opnd* genNot(Type* dstType, Opnd* src);//TR //SI
     // Conversion
     Opnd* genConv(Type* dstType, Type::Tag toType, Modifier ovfMod, Opnd* src); //TR //SI
@@ -369,19 +368,6 @@ public:
     void       genMonitorEnterFence(Opnd *src);
     void       genMonitorExitFence(Opnd *src);
     
-    Opnd*      genMinVec (Type* dstType, Opnd* src1, Opnd* src2); //SI
-    Opnd*      genMaxVec (Type* dstType, Opnd* src1, Opnd* src2); //SI
-    Opnd*      genAbsVec (Type* dstType, Opnd* src1); //SI
-    Opnd*      genVecAddSub (Type* dstType, Modifier mod, Opnd* src1, Opnd* src2);
-    Opnd*      genVecHadd (Type* dstType, Modifier mod, Opnd* src1, Opnd* src2);
-    Opnd*      genVecHsub (Type* dstType, Modifier mod, Opnd* src1, Opnd* src2);
-    Opnd*      genVecShuffle (Type* dstType, Modifier mod, Opnd* src1, Opnd* src2, Opnd* src3);
-    Opnd*      genVecExtract (Type* dstType, Modifier mod, Opnd* src1, Opnd* src2);
-    Opnd*      genVecPackScalars (Type* dstType, Modifier mod, U_32 numOpnds, Opnd **opnds);
-    Opnd*      genVecInterleaveHigh (Type* dstType, Modifier mod, Opnd* src1, Opnd* src2);
-    Opnd*      genVecInterleaveLow (Type* dstType, Modifier mod, Opnd* src1, Opnd* src2);
-    Opnd*      genVecCmpStr (Type* dstType, U_32 numOpnds, Opnd **opnds);
-
 private:
 
     void readFlagsFromCommandLine(SessionAction* argSource, const char* argPrefix);

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Inst.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Inst.cpp?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Inst.cpp (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Inst.cpp Mon Jun  7 07:47:11 2010
@@ -1775,10 +1775,6 @@ Inst* InstFactory::makeXor(Opnd* dst, Op
     return makeInst(Op_Xor, Modifier(), dst->getType()->tag, dst, src1, src2);
 }
 
-Inst* InstFactory::makeAndNot(Opnd* dst, Opnd* src1, Opnd* src2) {
-    return makeInst(Op_AndNot, Modifier(), dst->getType()->tag, dst, src1, src2);
-}
-
 Inst* InstFactory::makeNot(Opnd* dst, Opnd* src) {
     return makeInst(Op_Not, Modifier(), dst->getType()->tag, dst, src);
 }
@@ -2539,55 +2535,6 @@ Inst* InstFactory::makeIncCounter(U_32 v
     return makeTokenInst(Op_IncCounter, Modifier(), Type::Void, OpndManager::getNullOpnd(), val, NULL);
 }
 
-Inst*
-InstFactory::makeVecAddSub(Opnd* dst, Opnd* src1, Opnd* src2) {
-    return makeInst(Op_VecAddSub, Modifier(), dst->getType()->tag, dst, src1, src2);
-}
-
-Inst*
-InstFactory::makeVecHadd(Opnd* dst, Opnd* src1, Opnd* src2) {
-    return makeInst(Op_VecHadd, Modifier(), dst->getType()->tag, dst, src1, src2);
-}
-
-Inst*
-InstFactory::makeVecHsub(Opnd* dst, Opnd* src1, Opnd* src2) {
-    return makeInst(Op_VecHsub, Modifier(), dst->getType()->tag, dst, src1, src2);
-}
-
-Inst*
-InstFactory::makeVecShuffle(Opnd* dst, Opnd* src1, Opnd* src2, Opnd* src3) {
-    return makeMultiSrcInst(Op_VecShuffle, Modifier(), dst->getType()->tag, dst, src1, src2, src3);
-}
-
-Inst*
-InstFactory::makeVecExtract(Opnd *dst, Opnd *src, Opnd *index) {
-    return makeInst(Op_VecExtract, Modifier(), dst->getType()->tag, dst, src, index);
-}
-
-Inst*
-InstFactory::makeVecPackScalars(Opnd *dst, U_32 numOpnds, Opnd **opnds) {
-    Opnd** srcs = copyOpnds(opnds, numOpnds);
-    return makeMultiSrcInst(Op_VecPackScalars, Modifier(), dst->getType()->tag,
-                            dst, numOpnds, srcs);
-}
-
-Inst*
-InstFactory::makeVecInterleaveHigh(Opnd* dst, Opnd* src1, Opnd* src2) {
-    return makeInst(Op_VecInterleaveHigh, Modifier(), dst->getType()->tag, dst, src1, src2);
-}
-
-Inst*
-InstFactory::makeVecInterleaveLow(Opnd* dst, Opnd* src1, Opnd* src2) {
-    return makeInst(Op_VecInterleaveLow, Modifier(), dst->getType()->tag, dst, src1, src2);
-}
-
-Inst*
-InstFactory::makeVecCmpStr(Opnd *dst, U_32 numOpnds, Opnd **opnds) {
-    Opnd** srcs = copyOpnds(opnds, numOpnds);
-    return makeMultiSrcInst(Op_VecCmpStr, Modifier(), dst->getType()->tag,
-                            dst, numOpnds, srcs);
-}
-
 Inst* InstFactory::makeTauPoint(Opnd *dst) {
     assert(dst->getType()->tag == Type::Tau);
     return makeInst(Op_TauPoint, Modifier(), Type::Tau, dst);
@@ -2666,7 +2613,6 @@ InstOptimizer::dispatch(Inst* inst) {
     case Op_And:                return caseAnd(inst);
     case Op_Or:                 return caseOr(inst);
     case Op_Xor:                return caseXor(inst);
-    case Op_AndNot:             return caseAndNot(inst);
     case Op_Not:                return caseNot(inst);
     case Op_Select:             return caseSelect(inst);
     case Op_Conv:               return caseConv(inst);
@@ -2770,15 +2716,6 @@ InstOptimizer::dispatch(Inst* inst) {
     case Op_LdArrayLenOffsetPlusHeapbase:  return caseLdArrayLenOffsetPlusHeapbase(inst->asTypeInst());
     case Op_AddOffset:          return caseAddOffset(inst);
     case Op_AddOffsetPlusHeapbase: return caseAddOffsetPlusHeapbase(inst);
-    case Op_VecAddSub:          return caseVecAddSub(inst);
-    case Op_VecHadd:            return caseVecHadd(inst);
-    case Op_VecHsub:            return caseVecHsub(inst);
-    case Op_VecShuffle:         return caseVecShuffle(inst);
-    case Op_VecExtract:         return caseVecExtract(inst);
-    case Op_VecPackScalars:     return caseVecPackScalars(inst);
-    case Op_VecInterleaveHigh:  return caseVecInterleaveHigh(inst);
-    case Op_VecInterleaveLow:   return caseVecInterleaveLow(inst);
-    case Op_VecCmpStr:          return caseVecCmpStr(inst);
     case Op_TauPoint:           return caseTauPoint(inst);
     case Op_TauEdge:            return caseTauEdge(inst);
     case Op_TauAnd:             return caseTauAnd(inst);

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Inst.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Inst.h?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Inst.h (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Inst.h Mon Jun  7 07:47:11 2010
@@ -1056,7 +1056,6 @@ public:
     Inst*    makeAnd(Opnd* dst, Opnd* src1, Opnd* src2);
     Inst*    makeOr(Opnd* dst, Opnd* src1, Opnd* src2);
     Inst*    makeXor(Opnd* dst, Opnd* src1, Opnd* src2);
-    Inst*    makeAndNot(Opnd* dst, Opnd* src1, Opnd* src2);
     Inst*    makeNot(Opnd* dst, Opnd* src);
     // Selection
     Inst*    makeSelect(Opnd* dst, Opnd* src1, Opnd* src2, Opnd* src3);
@@ -1233,20 +1232,6 @@ public:
     Inst*    makeAddOffset(Opnd* dst, Opnd* ref, Opnd* offset);
     Inst*    makeAddOffsetPlusHeapbase(Opnd* dst, Opnd* ref, Opnd* offset);
 
-    // Vector operations
-    Inst*    makeVecAddSub (Opnd* dst, Opnd* src1, Opnd* src2);
-    Inst*    makeVecHadd (Opnd* dst, Opnd* src1, Opnd* src2);
-    Inst*    makeVecHsub (Opnd* dst, Opnd* src1, Opnd* src2);
-    Inst*    makeVecShuffle (Opnd* dst, Opnd* src1, Opnd* src2, Opnd* src3);
-    // Make an instruction that extract the INDEX-th element from the
-    // vector SRC to DST.
-    Inst*    makeVecExtract (Opnd *dst, Opnd *src, Opnd *index);
-    // Pack OPNDS[0..n] into the vector DST.
-    Inst*    makeVecPackScalars (Opnd *dst, U_32 numOpnds, Opnd **opnds);
-    Inst*    makeVecInterleaveHigh (Opnd* dst, Opnd* src1, Opnd* src2);
-    Inst*    makeVecInterleaveLow (Opnd* dst, Opnd* src1, Opnd* src2);
-    Inst*    makeVecCmpStr (Opnd *dst, U_32 numOpnds, Opnd **opnds);
-
     // new tau methods
     Inst*    makeTauPoint(Opnd *dst);
     Inst*    makeTauEdge(Opnd *dst);
@@ -1547,9 +1532,6 @@ public:
     caseXor(Inst* inst)=0;//                 {return caseDefault(inst);}
 
     virtual Inst*
-    caseAndNot(Inst* inst)=0;//              {return caseDefault(inst);}
-
-    virtual Inst*
     caseNot(Inst* inst)=0;//                 {return caseDefault(inst);}
 
     // selection
@@ -1897,33 +1879,6 @@ public:
     virtual Inst*
     caseAddOffsetPlusHeapbase(Inst* inst)=0;// {return caseDefault(inst);}
 
-    virtual Inst*
-    caseVecAddSub(Inst* inst)=0;
-
-    virtual Inst*
-    caseVecHadd(Inst* inst)=0;
-
-    virtual Inst*
-    caseVecHsub(Inst* inst)=0;
-
-    virtual Inst*
-    caseVecShuffle(Inst* inst)=0;
-
-    virtual Inst*
-    caseVecExtract(Inst* inst)=0;
-
-    virtual Inst*
-    caseVecPackScalars(Inst* inst)=0;
-
-    virtual Inst*
-    caseVecInterleaveHigh(Inst* inst)=0;
-
-    virtual Inst*
-    caseVecInterleaveLow(Inst* inst)=0;
-
-    virtual Inst*
-    caseVecCmpStr(Inst* inst)=0;
-
     // new tau methods
     virtual Inst*
     caseTauPoint(Inst* inst)=0;//         {return caseDefault(inst);}

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Opcode.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Opcode.cpp?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Opcode.cpp (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Opcode.cpp Mon Jun  7 07:47:11 2010
@@ -88,7 +88,6 @@ static OpcodeInfo opcodeTable[] = {
     { Op_And,                   false, MB::Movable,       MK::None,                                  "and   ",        "and       %s -) %l",           },
     { Op_Or,                    false, MB::Movable,       MK::None,                                  "or    ",        "or        %s -) %l",           },
     { Op_Xor,                   false, MB::Movable,       MK::None,                                  "xor   ",        "xor       %s -) %l",           },
-    { Op_AndNot,                false, MB::Movable,       MK::None,                                  "andnot",        "andnot    %s -) %l",           },
     { Op_Not,                   false, MB::Movable,       MK::None,                                  "not   ",        "not       %s -) %l",           },
     { Op_Select,                false, MB::Movable,       MK::None,                                  "select",        "select %s -) %l",              }, // (src1 ? src2 : src3)
     { Op_Conv,                  false, MB::Movable,       MK::Overflow_and_Exception_and_Strict,     "conv  ",        "conv%t%m %s -) %l",            }, 
@@ -205,15 +204,6 @@ static OpcodeInfo opcodeTable[] = {
     { Op_AddOffset,             false, MB::Movable,       MK::None,                                  "addoffset",              "addoff %s -) %l",      },
     { Op_AddOffsetPlusHeapbase, false, MB::Movable,       MK::None,                                  "addoffphb",              "addoffphb %s -) %l",      },
 
-    { Op_VecAddSub,             false, MB::Movable,       MK::None,                                  "addsub",           "addsub       %s -) %l",           },
-    { Op_VecHadd,               false, MB::Movable,       MK::None,                                  "hadd",             "hadd         %s -) %l",           },
-    { Op_VecHsub,               false, MB::Movable,       MK::None,                                  "hsub",             "hsub         %s -) %l",           },
-    { Op_VecShuffle,            false, MB::Movable,       MK::None,                                  "shuffle",          "shuffle      %s -) %l",           },
-    { Op_VecExtract,            false, MB::Movable,       MK::None,                                  "vecextr",          "vecextr      %s -) %l",           },
-    { Op_VecPackScalars,        false, MB::Movable,       MK::None,                                  "vecpack",          "vecpack      %s -) %l",           },
-    { Op_VecInterleaveHigh,     false, MB::Movable,       MK::None,                                  "unpackh",          "unpackh      %s -) %l",           },
-    { Op_VecInterleaveLow,      false, MB::Movable,       MK::None,                                  "unpackl",          "unpackl      %s -) %l",           },
-    { Op_VecCmpStr,             false, MB::Movable,       MK::None,                                  "cmpstr",           "cmpstr       %s -) %l",           },
     { Op_TauPoint,              false, MB::None,          MK::None,                                  "taupoint ",        "taupoint() -) %l",           }, // mark
     { Op_TauEdge,              false, MB::None,          MK::None,                                   "tauedge ",        "tauedge() -) %l",           }, // mark
     { Op_TauAnd,                false, MB::Movable,       MK::None,                                  "tauand ",        "tauand       %s -) %l",        },

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Opcode.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Opcode.h?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Opcode.h (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Opcode.h Mon Jun  7 07:47:11 2010
@@ -296,7 +296,6 @@ enum Opcode {
     Op_Min,   Op_Max,   Op_Abs,     // no modifiers
     // Bitwise
     Op_And,    Op_Or,    Op_Xor,
-    Op_AndNot,
     Op_Not,
     // Selection
     Op_Select,                      // (src1 ? src2 : src3)
@@ -439,17 +438,6 @@ enum Opcode {
     Op_AddOffset,                   // add uncompref+offset
     Op_AddOffsetPlusHeapbase,       // add compref+offsetPlusHeapbase (uncompressing)
 
-    // Vector operations:
-    Op_VecAddSub,                   // add odd elements and sub even elements
-    Op_VecHadd,                     // horizontal add pairs of elements
-    Op_VecHsub,                     // horizontal sub pairs of elements
-    Op_VecShuffle,                  // shuffle elements of a vector according to a given pattern
-    Op_VecExtract,                  // extract a scalar value from a vector
-    Op_VecPackScalars,              // pack multiple scalar values into a vector
-    Op_VecInterleaveHigh,           // interleave high parts of two vectors
-    Op_VecInterleaveLow,            // interleave low parts of two vectors
-    Op_VecCmpStr,                   // compare strings, return index
-
     // ADDED FOR TAU:
 
     Op_TauPoint,

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Opnd.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Opnd.cpp?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Opnd.cpp (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/Opnd.cpp Mon Jun  7 07:47:11 2010
@@ -151,8 +151,6 @@ OpndManager::getOpndTypeFromLdType(Type*
         return typeManager.getDoubleType();
     case Type::Float:
         return typeManager.getFloatType();
-    case Type::Vector:
-        return ldType;
         // object types
     case Type::CompressedSystemObject:
     case Type::CompressedUnresolvedObject:

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/codelowerer.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/codelowerer.h?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/codelowerer.h (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/codelowerer.h Mon Jun  7 07:47:11 2010
@@ -94,8 +94,6 @@ private:
 
     Inst* caseXor(Inst* inst) {return caseDefault(inst);}
 
-    Inst* caseAndNot(Inst* inst) {return caseDefault(inst);}
-
     Inst* caseNot(Inst* inst) {return caseDefault(inst);}
 
     // selection
@@ -306,24 +304,6 @@ private:
 
     Inst* caseAddOffsetPlusHeapbase(Inst* inst) {return caseDefault(inst);}
 
-    Inst* caseVecAddSub(Inst* inst) {return caseDefault(inst);}
-
-    Inst* caseVecHadd(Inst* inst) {return caseDefault(inst);}
-
-    Inst* caseVecHsub(Inst* inst) {return caseDefault(inst);}
-
-    Inst* caseVecShuffle(Inst* inst) {return caseDefault(inst);}
-
-    Inst* caseVecExtract(Inst* inst) {return caseDefault(inst);}
-
-    Inst* caseVecPackScalars(Inst* inst) {return caseDefault(inst);}
-
-    Inst* caseVecInterleaveHigh(Inst* inst) {return caseDefault(inst);}
-
-    Inst* caseVecInterleaveLow(Inst* inst) {return caseDefault(inst);}
-
-    Inst* caseVecCmpStr(Inst* inst) {return caseDefault(inst);}
-
     // new tau methods
     Inst* caseTauPoint(Inst* inst) {return caseDefault(inst);}
 

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/dabce.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/dabce.cpp?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/dabce.cpp (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/dabce.cpp Mon Jun  7 07:47:11 2010
@@ -752,23 +752,6 @@ void DynamicABCE::findArrayAccesses() {
     }
 }
 
-Inst *DynamicABCE::getLdBaseInst(Inst* checkInst) {
-
-    if (checkInst->getOpcode() == Op_LdArrayBaseAddr) {
-        return checkInst;
-    } else if (checkInst->getOpcode() == Op_LdVar) {
-        return getLdBaseInst(checkInst->getSrc(0)->asSsaOpnd()->getInst()); 
-    } else if (checkInst->getOpcode() == Op_StVar) {
-        return getLdBaseInst(checkInst->getSrc(0)->asSsaOpnd()->getInst());
-    } else if (checkInst->getOpcode() == Op_Phi) {
-        return getLdBaseInst(checkInst->getSrc(0)->asSsaOpnd()->getInst());
-    }
-
-    assert(0);
-
-    return NULL;
-}
-
 void DynamicABCE::fillTemplate(ArrayAccessTemplate* arrayAccess, Inst* checkInst) {
     Inst* ldBaseInst = NULL;
 
@@ -795,7 +778,7 @@ void DynamicABCE::fillTemplate(ArrayAcce
         } else if (opcode == Op_AddScaledIndex &&
             arrayAccess->index == inst->getSrc(1) && arrayAccess->array == NULL) {
             assert(ldBaseInst == NULL);
-            ldBaseInst = getLdBaseInst(inst->getSrc(0)->asSsaOpnd()->getInst());
+            ldBaseInst = inst->getSrc(0)->asSsaOpnd()->getInst();
             assert((ldBaseInst->getOpcode() == Op_LdArrayBaseAddr)||(ldBaseInst->getOpcode() == Op_LdVar));
             arrayAccess->array = ldBaseInst->getSrc(0)->asSsaOpnd();
             break;

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/dabce.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/dabce.h?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/dabce.h (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/dabce.h Mon Jun  7 07:47:11 2010
@@ -109,7 +109,6 @@ private:
                             InvariantOpndLoopInfo* stride,
                             SsaOpnd* arrayLength,
                             bool canReachBound);
-    Inst *getLdBaseInst(Inst* checkInst);
     void fillTemplate(ArrayAccessTemplate* arrayAccesses, Inst* checkInst);    
     Edge* findUnconditionalInEdge(Node* targetNode);
     Node* getClonedLoop();

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/hashvaluenumberer.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/hashvaluenumberer.cpp?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/hashvaluenumberer.cpp (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/hashvaluenumberer.cpp Mon Jun  7 07:47:11 2010
@@ -159,7 +159,6 @@ public:
     Inst* caseAnd(Inst* inst)               { return hashInst(inst); }
     Inst* caseOr(Inst* inst)                { return hashInst(inst); }
     Inst* caseXor(Inst* inst)               { return hashInst(inst); }
-    Inst* caseAndNot(Inst* inst)            { return hashInst(inst); }
     Inst* caseNot(Inst* inst)               { return hashInst(inst); }
     
     // selection
@@ -900,33 +899,6 @@ public:
     virtual Inst*
     caseAddOffsetPlusHeapbase(Inst* inst) { return hashInst(inst); }
 
-    virtual Inst*
-    caseVecAddSub(Inst* inst) { return caseDefault(inst); }
-
-    virtual Inst*
-    caseVecHadd(Inst* inst) { return caseDefault(inst); }
-
-    virtual Inst*
-    caseVecHsub(Inst* inst) { return caseDefault(inst); }
-
-    virtual Inst*
-    caseVecShuffle(Inst* inst) { return caseDefault(inst); }
-
-    virtual Inst*
-    caseVecExtract(Inst* inst) { return caseDefault(inst); }
-
-    virtual Inst*
-    caseVecPackScalars(Inst* inst) { return caseDefault(inst); }
-
-    virtual Inst*
-    caseVecInterleaveHigh(Inst* inst) { return caseDefault(inst); }
-
-    virtual Inst*
-    caseVecInterleaveLow(Inst* inst) { return caseDefault(inst); }
-
-    virtual Inst*
-    caseVecCmpStr(Inst* inst) { return caseDefault(inst); }
-
     // new tau methods
     virtual Inst*
     caseTauPoint(Inst* inst) { return caseDefault(inst); }

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/memoryopt.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/memoryopt.cpp?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/memoryopt.cpp (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/memoryopt.cpp Mon Jun  7 07:47:11 2010
@@ -898,7 +898,7 @@ MemoryOptInitWalker::applyToInst(Inst *i
 
     case Op_Add: case Op_Mul: case Op_Sub: case Op_TauDiv: case Op_TauRem: 
     case Op_Neg: case Op_MulHi: case Op_Min: case Op_Max: case Op_Abs:
-    case Op_And: case Op_Or: case Op_Xor: case Op_AndNot:
+    case Op_And: case Op_Or: case Op_Xor: 
     case Op_Not: case Op_Select: case Op_Conv: case Op_ConvZE: case Op_ConvUnmanaged: case Op_Shladd: case Op_Shl: 
     case Op_Shr: case Op_Cmp: case Op_Cmp3: 
     case Op_Branch: case Op_Jump: case Op_Switch:
@@ -920,15 +920,6 @@ MemoryOptInitWalker::applyToInst(Inst *i
     case Op_Label:
     case Op_Phi:
     case Op_TauPi:
-    case Op_VecAddSub:
-    case Op_VecHadd:
-    case Op_VecHsub:
-    case Op_VecShuffle:
-    case Op_VecExtract:
-    case Op_VecPackScalars:
-    case Op_VecInterleaveHigh:
-    case Op_VecInterleaveLow:
-    case Op_VecCmpStr:
     case Op_TauPoint:
     case Op_TauEdge:
     case Op_TauAnd:

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/simplifier.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/simplifier.cpp?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/simplifier.cpp (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/simplifier.cpp Mon Jun  7 07:47:11 2010
@@ -1661,12 +1661,6 @@ Simplifier::simplifyTauRem(Type* dstType
                 //
                 return genLdConstant((I_32)0)->getDst();
             }
-            else if (denom > 0 && ((denom & (denom - 1)) == 0)) {
-                // convert rem by powers of 2 into bitwise "and" --njt--
-                // src1 % src2 -> src1 & (src2 - 1)
-                return genAnd(dstType, src1,
-                              genLdConstant(denom - 1)->getDst ())->getDst ();
-            }
         } else if (ConstantFolder::isConstant(src2inst, cv.i8)) {
             int64 denom = cv.i8;
             if ((denom == -1) || (denom == 1)) {

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/simplifier.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/simplifier.h?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/simplifier.h (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/optimizer/simplifier.h Mon Jun  7 07:47:11 2010
@@ -385,9 +385,6 @@ public:
             return opnd->getInst();
         return inst;
     }
-    Inst* caseAndNot(Inst* inst) {
-        return inst;
-    }
     Inst* caseNot(Inst* inst) {
         Opnd* opnd = simplifyNot(inst->getDst()->getType(),
                                  inst->getSrc(0));
@@ -879,42 +876,6 @@ public:
         return inst;
     }
 
-    Inst* caseVecAddSub(Inst* inst) {
-        return inst;
-    }
-
-    Inst* caseVecHadd(Inst* inst) {
-        return inst;
-    }
-
-    Inst* caseVecHsub(Inst* inst) {
-        return inst;
-    }
-
-    Inst* caseVecShuffle(Inst* inst) {
-        return inst;
-    }
-
-    Inst* caseVecExtract(Inst* inst) {
-        return inst;
-    }
-
-    Inst* caseVecPackScalars(Inst* inst) {
-        return inst;
-    }
-
-    Inst* caseVecInterleaveHigh(Inst* inst) {
-        return inst;
-    }
-
-    Inst* caseVecInterleaveLow(Inst* inst) {
-        return inst;
-    }
-
-    Inst* caseVecCmpStr(Inst* inst) {
-        return inst;
-    }
-
     Inst* caseTauPoint(Inst* inst) {
         return inst;
     }

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/shared/LoopTree.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/shared/LoopTree.cpp?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/shared/LoopTree.cpp (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/shared/LoopTree.cpp Mon Jun  7 07:47:11 2010
@@ -313,33 +313,6 @@ bool LoopTree::isBackEdge(const Edge* ed
     return fg->getDominatorTree()->dominates(edge->getTargetNode(), edge->getSourceNode());
 }
 
-LoopNode*
-LoopTree::findCommonLoop (LoopNode *loop1, LoopNode *loop2) const
-{
-  int depth1 = loop1->getDepth ();
-  int depth2 = loop2->getDepth ();
-
-  while (depth1 < depth2)
-    {
-      loop2 = loop2->getParent ();
-      depth2--;
-    }
-
-  while (depth2 < depth1)
-    {
-      loop1 = loop1->getParent ();
-      depth1--;
-    }
-
-  while (loop1 != loop2)
-    {
-      loop1 = loop1->getParent ();
-      loop2 = loop2->getParent ();
-    }
-
-  return loop1;
-}
-
 
 bool LoopNode::inLoop(const Node* node) const  {
     assert(this!=loopTree->getRoot());

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/shared/LoopTree.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/shared/LoopTree.h?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/shared/LoopTree.h (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/shared/LoopTree.h Mon Jun  7 07:47:11 2010
@@ -105,10 +105,6 @@ public:
     bool isNormalized() const { return normalized;}
 
     U_32 getMaxLoopDepth() const {return getHeight()-1;}
-
-    // Return common ancestor of LOOP1 and LOOP2.
-    LoopNode* findCommonLoop (LoopNode *loop1, LoopNode *loop2) const;
-
 private:
 
     void findLoopHeaders(Nodes& headers);

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/shared/Type.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/shared/Type.cpp?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/shared/Type.cpp (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/shared/Type.cpp Mon Jun  7 07:47:11 2010
@@ -131,7 +131,6 @@ Type* TypeManager::toInternalType(Type* 
     case Type::Single:
     case Type::Double:
     case Type::Float:
-    case Type::Vector:
     case Type::SystemObject:
     case Type::SystemClass:
     case Type::SystemString:
@@ -342,7 +341,6 @@ TypeManager::TypeManager(MemoryManager& 
     userObjectTypes(mm,32), 
     managedPtrTypes(mm,32), 
     unmanagedPtrTypes(mm,32), 
-    vectorTypes(mm,32), 
     arrayTypes(mm,32), 
     methodPtrTypes(mm,32),
     vtablePtrTypes(mm,32),
@@ -432,26 +430,6 @@ TypeManager::init() {
     floatType = initBuiltinType(Type::Float);
 }
 
-VectorType*    
-TypeManager::getVectorType(NamedType *elemType, int length)
-{
-    assert (elemType->isBuiltinValue ());
-
-    VectorType *type = vectorTypes.lookup (elemType);
-
-    if (!type) {
-        type = new (memManager) VectorType(elemType, length);
-	vectorTypes.insert(elemType, type);
-    } else {
-        // For now, we only support single length vector types for a
-        // given element type since it's enough for all existing
-        // machines that supports SIMD.
-        assert (type->getLength () == length);
-    }
-
-    return type;
-}
-
 ArrayType*    
 TypeManager::getArrayType(Type* elemType, bool isCompressed, void* arrayVMTypeHandle) {
     PtrHashTable<ArrayType> &lookupTable = 
@@ -973,11 +951,6 @@ void    EnumType::print(::std::ostream& 
 
 extern const char *messageStr(const char *);
 
-void    VectorType::print(::std::ostream& os) {
-    elemType->print(os);
-    os << "<" << length << ">";
-}
-
 void    ObjectType::print(::std::ostream& os) {
     if (isCompressedReference()) {
         os << "clsc:" << getName();
@@ -1082,7 +1055,6 @@ Type::getPrintString(Tag t) {
     case Single:          s = "r4 "; break;
     case Double:          s = "r8 "; break;
     case Float:           s = "r  "; break;
-    case Vector:          s = "<> "; break;
     case TypedReference:  s = "trf"; break;
     case Value:           s = "val"; break;
     case SystemObject:    s = "obj"; break;

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/shared/Type.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/shared/Type.h?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/shared/Type.h (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/shared/Type.h Mon Jun  7 07:47:11 2010
@@ -40,7 +40,6 @@ class SsaOpnd;
 class PtrType;
 class FunctionPtrType;
 class NamedType;
-class VectorType;
 class ArrayType;
 class MethodPtrType;
 class UnresolvedMethodPtrType;
@@ -76,7 +75,6 @@ public:
         Single,
         Double,
         Float, // machine-specific float
-	Vector, // vector types
         TypedReference, // typed reference
         
         //     (1.2) User-defined un-boxed value type
@@ -175,7 +173,6 @@ public:
     bool    isSingle()         {return (tag == Type::Single);      }
     bool    isDouble()         {return (tag == Type::Double);      }
     bool    isFloat()          {return (tag == Type::Float);       }
-    bool    isVector()         {return (tag == Type::Vector);       }
     bool    isOffset()         {return (tag == Type::Offset);       }
     bool    isOffsetPlusHeapbase()         {return (tag == Type::OffsetPlusHeapbase);       }
     bool    isSystemObject()   {return isSystemObject(tag); }
@@ -212,7 +209,6 @@ public:
     bool    isArrayLength()    {return (tag == Type::ArrayLength);  }
     bool    isArrayElement()   {return (tag == Type::ArrayElementType);  }
     virtual void print(::std::ostream& os);
-    virtual VectorType*       asVectorType()         {return NULL;}
     virtual ObjectType*       asObjectType()         {return NULL;}
     virtual PtrType*          asPtrType()            {return NULL;}
     virtual FunctionPtrType*  asFunctionPtrType()    {return NULL;}
@@ -544,24 +540,6 @@ public:
     virtual ~ValueType() {}
 };
 
-class VectorType : public ValueType {
-public:
-    VectorType (NamedType *t, int l)
-      : ValueType (Vector), elemType (t), length (l) {}
-
-    VectorType* asVectorType () { return this; }
-
-    NamedType* getElemType () {return elemType;}
-
-    int getLength () { return length; }
-
-    void print (::std::ostream& os);
-
-private:
-    NamedType *elemType;
-    int length;
-};
-
 class UserValueType : public NamedType {
 public:
     UserValueType(void* td,TypeManager& tm) : NamedType(Value,td,tm) {}
@@ -755,7 +733,6 @@ public:
 
     NamedType*    getValueType(void* vmTypeHandle);
     ObjectType*   getObjectType(void* vmTypeHandle, bool isCompressed=false);
-    VectorType*   getVectorType(NamedType *elemType, int length);
     ArrayType*    getArrayType(Type* elemType, bool isCompressed=false, void* arrayVMTypeHandle=NULL);
     void          initArrayType(Type* elemType, bool isCompressed, void* arrayVMTypeHandle);
     Type*         getCommonType(Type* type1, Type *type2);
@@ -851,7 +828,6 @@ private:
     PtrHashTable<ObjectType>       userObjectTypes;
     PtrHashTable<PtrType>          managedPtrTypes;
     PtrHashTable<PtrType>          unmanagedPtrTypes;
-    PtrHashTable<VectorType>       vectorTypes;
     PtrHashTable<ArrayType>        arrayTypes;
     PtrHashTable<MethodPtrType>    methodPtrTypes;
     PtrHashTable<VTablePtrType>    vtablePtrTypes;

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/translator/java/JavaByteCodeTranslator.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/translator/java/JavaByteCodeTranslator.cpp?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/translator/java/JavaByteCodeTranslator.cpp (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/translator/java/JavaByteCodeTranslator.cpp Mon Jun  7 07:47:11 2010
@@ -32,7 +32,6 @@
 #include "EMInterface.h"
 #include "inliner.h"
 #include "VMMagic.h"
-#include "SIMD.h"
 
 #include <assert.h>
 #include <stdio.h>
@@ -172,8 +171,6 @@ JavaByteCodeTranslator::JavaByteCodeTran
             } 
             if (VMMagicUtils::isVMMagicClass(type->getName())) {
                 type = convertVMMagicType2HIR(typeManager, type);
-            } else if (SIMDUtils::isSIMDClass(type->getName())) {
-                type = SIMDUtils::convertSIMDType2HIR(typeManager, type);
             }
             arg = irBuilder.genArgDef(DefArgNoModifier,type);
         }
@@ -727,8 +724,6 @@ JavaByteCodeTranslator::getstatic(U_32 c
         bool fieldIsMagic = VMMagicUtils::isVMMagicClass(fieldType->getName());
         if (fieldIsMagic) {
             fieldType = convertVMMagicType2HIR(typeManager, fieldType);
-        } else if (SIMDUtils::isSIMDClass(fieldType->getName())) {
-            fieldType = SIMDUtils::convertSIMDType2HIR(typeManager, fieldType);
         }
         if (field->isInitOnly() && !field->getParentType()->needsInitialization()) {
             //the final static field of the initialized class
@@ -764,20 +759,15 @@ JavaByteCodeTranslator::getstatic(U_32 c
             pushOpnd(irBuilder.genLdStatic(fieldType, field));
         }
     } else {
-        Type* fieldType;
         //field is not resolved or not static
         if (!typeManager.isLazyResolutionMode()) {
             // generate helper call for throwing respective exception
             linkingException(constPoolIndex, OPCODE_GETSTATIC);
         }
         const char* fieldTypeName = CompilationInterface::getFieldSignature(methodToCompile.getParentHandle(), constPoolIndex);
-        if (VMMagicUtils::isVMMagicClass(fieldTypeName)) {
-             fieldType = convertVMMagicType2HIR(typeManager, fieldTypeName);
-        } else if (SIMDUtils::isSIMDClass(fieldTypeName)) {
-             fieldType = SIMDUtils::convertSIMDType2HIR(typeManager, fieldTypeName);
-        } else {
-             fieldType = compilationInterface.getFieldType(methodToCompile.getParentHandle(), constPoolIndex);
-        }
+        bool fieldIsMagic = VMMagicUtils::isVMMagicClass(fieldTypeName);
+        Type* fieldType = fieldIsMagic ? convertVMMagicType2HIR(typeManager, fieldTypeName) 
+                                       : compilationInterface.getFieldType(methodToCompile.getParentHandle(), constPoolIndex);
         Opnd* res = irBuilder.genLdStaticWithResolve(fieldType, methodToCompile.getParentType()->asObjectType(), constPoolIndex);
         pushOpnd(res);
     }
@@ -792,25 +782,18 @@ JavaByteCodeTranslator::putstatic(U_32 c
         bool fieldIsMagic = VMMagicUtils::isVMMagicClass(fieldType->getName());
         if (fieldIsMagic) {
             fieldType = convertVMMagicType2HIR(typeManager, fieldType);
-        } else if (SIMDUtils::isSIMDClass(fieldType->getName())) {
-           fieldType = SIMDUtils::convertSIMDType2HIR(typeManager, fieldType);
         }
         irBuilder.genStStatic(fieldType,field,popOpnd());
     } else {
-        Type* fieldType;
         //field is not resolved or not static
         if (!typeManager.isLazyResolutionMode()) {
             // generate helper call for throwing respective exception
             linkingException(constPoolIndex, OPCODE_PUTSTATIC);
         }
         const char* fieldTypeName = CompilationInterface::getFieldSignature(methodToCompile.getParentHandle(), constPoolIndex);
-        if (VMMagicUtils::isVMMagicClass(fieldTypeName)) {
-             fieldType = convertVMMagicType2HIR(typeManager, fieldTypeName);
-        } else if (SIMDUtils::isSIMDClass(fieldTypeName)) {
-             fieldType = SIMDUtils::convertSIMDType2HIR(typeManager, fieldTypeName);
-        } else {
-             fieldType = compilationInterface.getFieldType(methodToCompile.getParentHandle(), constPoolIndex);
-        }
+        bool fieldIsMagic = VMMagicUtils::isVMMagicClass(fieldTypeName);
+        Type* fieldType = fieldIsMagic ? convertVMMagicType2HIR(typeManager, fieldTypeName) 
+                                       : compilationInterface.getFieldType(methodToCompile.getParentHandle(), constPoolIndex);
         Opnd* value = popOpnd();
         irBuilder.genStStaticWithResolve(fieldType, methodToCompile.getParentType()->asObjectType(), constPoolIndex, value);
     }
@@ -823,8 +806,6 @@ JavaByteCodeTranslator::getfield(U_32 co
         Type* fieldType = getFieldType(field, constPoolIndex);
         if (VMMagicUtils::isVMMagicClass(fieldType->getName())) {
             fieldType = convertVMMagicType2HIR(typeManager, fieldType);
-        } else if (SIMDUtils::isSIMDClass(fieldType->getName())) {
-            fieldType = SIMDUtils::convertSIMDType2HIR(typeManager, fieldType);
         }
         pushOpnd(irBuilder.genLdField(fieldType,popOpnd(),field));
     } else {
@@ -835,8 +816,6 @@ JavaByteCodeTranslator::getfield(U_32 co
         Type* fieldType = compilationInterface.getFieldType(methodToCompile.getParentHandle(), constPoolIndex);
         if (VMMagicUtils::isVMMagicClass(fieldType->getName())) {
             fieldType = convertVMMagicType2HIR(typeManager, fieldType);
-        } else if (SIMDUtils::isSIMDClass(fieldType->getName())) {
-            fieldType = SIMDUtils::convertSIMDType2HIR(typeManager, fieldType);
         }
         Opnd* base = popOpnd();
         Opnd* res = irBuilder.genLdFieldWithResolve(fieldType, base, methodToCompile.getParentType()->asObjectType(), constPoolIndex);
@@ -852,8 +831,6 @@ JavaByteCodeTranslator::putfield(U_32 co
         assert(fieldType);
         if (VMMagicUtils::isVMMagicClass(fieldType->getName())) {
             fieldType = convertVMMagicType2HIR(typeManager, fieldType);
-        } else if (SIMDUtils::isSIMDClass(fieldType->getName())) {
-            fieldType = SIMDUtils::convertSIMDType2HIR(typeManager, fieldType);
         }
 
         Opnd* value = popOpnd();
@@ -1537,10 +1514,6 @@ void JavaByteCodeTranslator::genCallWith
             if (res) { //method is not a registered vmhelper name
                 return;
             }
-        } else if (SIMDUtils::isSIMDClass(kname)) {
-            UNUSED bool res = genSIMDHelper(mname, numArgs, args, returnType);
-            assert(res);
-            return;
         }
     }
 
@@ -1574,10 +1547,6 @@ JavaByteCodeTranslator::invokevirtual(U_
         UNUSED bool res = genVMMagic(methodDesc->getName(), numArgs, srcOpnds, returnType);
         assert(res);
         return;
-    } else if (SIMDUtils::isSIMDClass(className)) {
-        UNUSED bool res = genSIMDHelper(methodDesc->getName(), numArgs, srcOpnds, returnType);    
-        assert(res);
-        return;
     }
 
     // callvirt can throw a null pointer exception
@@ -1948,8 +1917,6 @@ JavaByteCodeTranslator::genLdVar(U_32 va
     Opnd *var = getVarOpndLdVar(javaType,varIndex);
     if (VMMagicUtils::isVMMagicClass(var->getType()->getName())) {
         var->setType(convertVMMagicType2HIR(typeManager, var->getType()));
-    } else if (SIMDUtils::isSIMDClass(var->getType()->getName())) {
-        var->setType(SIMDUtils::convertSIMDType2HIR(typeManager, var->getType()));
     }
     Opnd *opnd;
     if (var->isVarOpnd()) {
@@ -2365,17 +2332,11 @@ JavaByteCodeTranslator::genInvokeStatic(
         if (res) {
             return;
         }
-    } else if (SIMDUtils::isSIMDClass(kname)) {
-        UNUSED bool res = genSIMDHelper(mname, numArgs, srcOpnds, returnType);
-        assert(res);
-        return;
     }
     Opnd *tauNullChecked = irBuilder.genTauSafe(); // always safe, is a static method call
     Type* resType = returnType;
     if (VMMagicUtils::isVMMagicClass(resType->getName())) {
         resType = convertVMMagicType2HIR(typeManager, resType);
-    } else if (SIMDUtils::isSIMDClass(resType->getName())) {
-        resType= SIMDUtils::convertSIMDType2HIR(typeManager, resType);
     }
     dst = irBuilder.genDirectCall(methodDesc, 
                         resType,
@@ -3182,188 +3143,4 @@ bool JavaByteCodeTranslator::genVMHelper
     return false;
 }
 
-bool
-JavaByteCodeTranslator::genSIMDHelper (const char* mname,
-				       U_32 numArgs,
-				       Opnd **args,
-				       Type *returnType)
-{
-  Type *resType = (SIMDUtils::isSIMDClass(returnType->getName ())
-		   ? SIMDUtils::convertSIMDType2HIR (typeManager, returnType)
-		   : returnType);
-  Modifier mod = Modifier(Overflow_None) | Modifier(Exception_Never) | Modifier(Strict_No);
-  Modifier shMod (ShiftMask_Masked);
-
-  if (!strcmp (mname, "make"))
-    {
-      if (numArgs == 1)
-	pushOpnd (irBuilder.genConv (resType, resType->tag, mod, args[0]));
-      else
-	pushOpnd (irBuilder.genVecPackScalars (resType, mod, numArgs, args));
-    }
-  else if (!strcmp (mname, "load"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genLdElem (resType, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "add"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genAdd (resType, mod, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "sub"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genSub (resType, mod, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "mul"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genMul (resType, mod, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "div"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genDiv (resType, Modifier (SignedOp) | Modifier (Strict_No),
-				  args[0], args[1]));
-    }
-  else if (!strcmp (mname, "addsub"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genVecAddSub (resType, mod, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "hadd"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genVecHadd (resType, mod, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "hsub"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genVecHsub (resType, mod, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "max"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genMaxVec (resType, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "min"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genMinVec (resType, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "abs"))
-    {
-      assert (numArgs == 1);
-      pushOpnd (irBuilder.genAbsVec (resType, args[0]));
-    }
-  else if (!strcmp (mname, "and"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genAnd (resType, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "or"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genOr (resType, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "xor"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genXor (resType, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "andnot"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genAndNot (resType, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "sll"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genShl (resType, shMod, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "srl"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genShr (resType, shMod | UnsignedOp,
-				  args[0], args[1]));
-    }
-  else if (!strcmp (mname, "sra"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genShr (resType, shMod | SignedOp,
-				  args[0], args[1]));
-    }
-  else if (!strcmp (mname, "cmpeq"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genCmp (resType, args[0]->getType()->tag,
-				  Cmp_EQ, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "cmpne"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genCmp (resType, args[0]->getType()->tag,
-				  Cmp_NE_Un, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "cmple"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genCmp (resType, args[0]->getType()->tag,
-				  Cmp_GTE, args[1], args[0]));
-    }
-  else if (!strcmp (mname, "cmpge"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genCmp (resType, args[0]->getType()->tag,
-				  Cmp_GTE, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "cmplt"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genCmp (resType, args[0]->getType()->tag,
-				  Cmp_GT, args[1], args[0]));
-    }
-  else if (!strcmp (mname, "cmpgt"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genCmp (resType, args[0]->getType()->tag,
-				  Cmp_GT, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "select"))
-    {
-      assert (numArgs == 3);
-      pushOpnd (irBuilder.genSelect (resType, args[0], args[1], args[2]));
-    }
-  else if (!strcmp (mname, "shuffle"))
-    {
-      assert (numArgs == 3);
-      pushOpnd (irBuilder.genVecShuffle (resType, mod, args[0], args[1], args[2]));
-    }
-  else if (!strcmp (mname, "unpack_high"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genVecInterleaveHigh (resType, mod, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "unpack_low"))
-    {
-      assert (numArgs == 2);
-      pushOpnd (irBuilder.genVecInterleaveLow (resType, mod, args[0], args[1]));
-    }
-  else if (!strcmp (mname, "store"))
-    {
-      assert (numArgs == 3);
-      irBuilder.genStElem (args[0]->getType (), args[1], args[2], args[0]);
-    }
-  else if (!strcmp (mname, "cmpstri") || !strcmp (mname, "cmpstrm"))
-    {
-      assert (numArgs == 3 || numArgs == 5);
-      pushOpnd (irBuilder.genVecCmpStr (resType, numArgs, args));
-    }
-  else
-    assert (0);
-
-  return true;
-}
-
 } //namespace Jitrino 

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/translator/java/JavaByteCodeTranslator.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/translator/java/JavaByteCodeTranslator.h?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/translator/java/JavaByteCodeTranslator.h (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/translator/java/JavaByteCodeTranslator.h Mon Jun  7 07:47:11 2010
@@ -271,7 +271,6 @@ private:
     void    genInvokeStatic(MethodDesc * methodDesc,U_32 numArgs,Opnd ** srcOpnds,Type * returnType);
     bool    genVMMagic(const char* mname, U_32 numArgs,Opnd ** srcOpnds,Type * returnType);
     bool    genVMHelper(const char* mname, U_32 numArgs,Opnd ** srcOpnds,Type * returnType);
-    bool    genSIMDHelper(const char* mname, U_32 numArgs,Opnd ** srcOpnds,Type * returnType);
     
     bool    genMinMax(MethodDesc * methodDesc,U_32 numArgs,Opnd ** srcOpnds, Type * returnType);
     void    newFallthroughBlock();

Modified: harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/vm/VMInterface.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/vm/VMInterface.cpp?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/vm/VMInterface.cpp (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/jitrino/src/vm/VMInterface.cpp Mon Jun  7 07:47:11 2010
@@ -46,7 +46,6 @@
 #include "PlatformDependant.h"
 
 #include "VMMagic.h"
-#include "SIMD.h"
 
 namespace Jitrino {
 
@@ -888,7 +887,6 @@ CompilationInterface::getTypeFromDrlVMTy
             const char* kname = type_info_get_type_name(typeHandle);
             assert(kname!=NULL);
             bool forceResolve = VMMagicUtils::isVMMagicClass(kname);
-            forceResolve = forceResolve || SIMDUtils::isSIMDClass(kname);
             if (!forceResolve) {
                 return typeManager.getUnresolvedObjectType();
             }
@@ -1200,7 +1198,6 @@ NamedType* CompilationInterface::getName
     if (typeManager.isLazyResolutionMode() && !class_cp_is_entry_resolved(enclClass, cpIndex)) {
         const char* className = class_cp_get_class_name(enclClass, cpIndex);
         bool forceResolve = VMMagicUtils::isVMMagicClass(className);
-        forceResolve = forceResolve || SIMDUtils::isSIMDClass(className);
         if (!forceResolve) {
             return getUnresolvedType(typeManager, enclClass, cpIndex);
         }

Modified: harmony/enhanced/java/trunk/drlvm/vm/port/src/encoder/ia32_em64t/enc_base.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/port/src/encoder/ia32_em64t/enc_base.cpp?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/port/src/encoder/ia32_em64t/enc_base.cpp (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/port/src/encoder/ia32_em64t/enc_base.cpp Mon Jun  7 07:47:11 2010
@@ -44,16 +44,14 @@ ENCODER_NAMESPACE_START
 
 int EncoderBase::dummy = EncoderBase::buildTable();
 
-const unsigned char EncoderBase::size_hash[OpndSize_128+1] = {
+const unsigned char EncoderBase::size_hash[OpndSize_64+1] = {
     //
     0xFF,   // OpndSize_Null        = 0,
-    5,              // OpndSize_8           = 0x1,
-    4,              // OpndSize_16          = 0x2,
+    3,              // OpndSize_8           = 0x1,
+    2,              // OpndSize_16          = 0x2,
     0xFF,   // 0x3
-    3,              // OpndSize_32          = 0x4,
-    2,              // OpndSize_64          = 0x8,
-    1,              // OpndSize_80          = 0x16,
-    0,              // OpndSize_128         = 0x20,
+    1,              // OpndSize_32          = 0x4,
+    0,              // OpndSize_64          = 0x8,
     //
 };
 
@@ -68,19 +66,19 @@ const unsigned char EncoderBase::kind_ha
     //mmx reg               -> 110 = 6
     //
     0xFF,                          // 0    OpndKind_Null=0,
-    0<<3,                          // 1    OpndKind_GPReg = 
+    0<<2,                          // 1    OpndKind_GPReg = 
                                    //           OpndKind_MinRegKind=0x1,
-    4<<3,                          // 2    OpndKind_SReg=0x2,
+    4<<2,                          // 2    OpndKind_SReg=0x2,
 
 #ifdef _HAVE_MMX_
-    6<<3,                          // 3
+    6<<2,                          // 3
 #else
     0xFF,                          // 3
 #endif
 
-    5<<3,                          // 4    OpndKind_FPReg=0x4,
+    5<<2,                          // 4    OpndKind_FPReg=0x4,
     0xFF, 0xFF, 0xFF,              // 5, 6, 7
-    3<<3,                                   //      OpndKind_XMMReg=0x8,
+    3<<2,                                   //      OpndKind_XMMReg=0x8,
     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 9, 0xA, 0xB, 0xC, 0xD, 
                                               // 0xE, 0xF
     0xFF,                          // OpndKind_MaxRegKind = 
@@ -88,12 +86,12 @@ const unsigned char EncoderBase::kind_ha
                                    // OpndKind_OtherReg=0x10,
     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 0x11-0x18
     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,               // 0x19-0x1F
-    2<<3,                                   // OpndKind_Immediate=0x20,
+    2<<2,                                   // OpndKind_Immediate=0x20,
     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 0x21-0x28
     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 0x29-0x30
     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 0x31-0x38
     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,               // 0x39-0x3F
-    1<<3,                                   // OpndKind_Memory=0x40
+    1<<2,                                   // OpndKind_Memory=0x40
 };
 
 char* EncoderBase::encode_aux(char* stream, unsigned aux,
@@ -314,14 +312,12 @@ char * EncoderBase::encode(char * stream
         ++stream;
         //
         prex = (Rex*)stream;
-        if (odesc->opcode[1] != 0x48) {
-            prex->dummy = 4;
-            prex->w = 0;
-            prex->b = 0;
-            prex->x = 0;
-            prex->r = 0;
-            ++stream;
-        }
+        prex->dummy = 4;
+        prex->w = 0;
+        prex->b = 0;
+        prex->x = 0;
+        prex->r = 0;
+        ++stream;
         //
         memcpy(stream, &odesc->opcode[1], odesc->opcode_len-1);
         stream += odesc->opcode_len-1;
@@ -351,10 +347,6 @@ char * EncoderBase::encode(char * stream
         else if (odesc->opcode_len==4) {
         *(unsigned*)stream = *(unsigned*)&odesc->opcode;
         }
-        else if (odesc->opcode_len==5) {
-        *(unsigned*)stream = *(unsigned*)&odesc->opcode;
-        *(unsigned char*)(stream+4) = odesc->opcode[4];
-        }
         stream += odesc->opcode_len;
     }
     
@@ -714,9 +706,7 @@ const EncoderBase::OpcodeDesc * 
 EncoderBase::lookup(Mnemonic mn, const Operands& opnds)
 {
     const unsigned hash = opnds.hash();
-    unsigned opcodeIndex = (hash < HASH_MAX ?
-                            opcodesHashMap[mn][hash]
-                            : NOHASH);
+    unsigned opcodeIndex = opcodesHashMap[mn][hash];
 #ifdef ENCODER_USE_SUBHASH
     if (opcodeIndex == NOHASH) {
         opcodeIndex = find(mn, hash);

Modified: harmony/enhanced/java/trunk/drlvm/vm/port/src/encoder/ia32_em64t/enc_base.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/port/src/encoder/ia32_em64t/enc_base.h?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/port/src/encoder/ia32_em64t/enc_base.h (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/port/src/encoder/ia32_em64t/enc_base.h Mon Jun  7 07:47:11 2010
@@ -228,7 +228,7 @@ public:
            * The [3] mostly comes from IDIV/IMUL which both may have up to 3
            * operands.
            */
-           OpndDesc        opnds[6];
+           OpndDesc        opnds[3];
            unsigned        first_opnd;
            /**
            * @brief Info about operands - total number, number of uses/defs,
@@ -280,7 +280,7 @@ public:
      * The value was increased from '5155' to '8192' to make it aligned
      * for faster access in EncoderBase::lookup().
      */
-    static const unsigned int               HASH_MAX = 53573; //8192; //5155;
+    static const unsigned int               HASH_MAX = 8192; //5155;
     /**
      * @brief Empty value, used in hash-to-opcode map to show an empty slot.
      */
@@ -288,7 +288,7 @@ public:
     /**
      * @brief The name says it all.
      */
-    static const unsigned char              HASH_BITS_PER_OPERAND = 6;
+    static const unsigned char              HASH_BITS_PER_OPERAND = 5;
 
     /**
      * @brief Contains info about a single instructions's operand - its 
@@ -666,7 +666,7 @@ public:
      * A change must be strictly balanced with hash-related functions and data 
      * in enc_base.h/.cpp.
      */ 
-    static const unsigned char size_hash[OpndSize_128+1];
+    static const unsigned char size_hash[OpndSize_64+1];
     /**
      * @brief A table used for the fast computation of hash value.
      *

Modified: harmony/enhanced/java/trunk/drlvm/vm/port/src/encoder/ia32_em64t/enc_defs.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/port/src/encoder/ia32_em64t/enc_defs.h?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/port/src/encoder/ia32_em64t/enc_defs.h (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/port/src/encoder/ia32_em64t/enc_defs.h Mon Jun  7 07:47:11 2010
@@ -19,9 +19,6 @@
  */
 #ifndef _ENCODER_DEFS_H_
 #define _ENCODER_DEFS_H_
-#define _HAVE_SIMD_
-#define _HAVE_SIMD_4_2_
-#define _HAVE_MMX_
 
 
 // Used to isolate experimental or being tuned encoder into a separate 
@@ -311,14 +308,14 @@ enum RegName {
     RegName_XMM7=REGNAME(OpndKind_XMMReg,OpndSize_128,7),
 
 #ifdef _EM64T_
-    RegName_XMM8  = REGNAME(OpndKind_XMMReg,OpndSize_128,8), 
-    RegName_XMM9  = REGNAME(OpndKind_XMMReg,OpndSize_128,9),
-    RegName_XMM10 = REGNAME(OpndKind_XMMReg,OpndSize_128,10),
-    RegName_XMM11 = REGNAME(OpndKind_XMMReg,OpndSize_128,11),
-    RegName_XMM12 = REGNAME(OpndKind_XMMReg,OpndSize_128,12),
-    RegName_XMM13 = REGNAME(OpndKind_XMMReg,OpndSize_128,13),
-    RegName_XMM14 = REGNAME(OpndKind_XMMReg,OpndSize_128,14),
-    RegName_XMM15 = REGNAME(OpndKind_XMMReg,OpndSize_128,15),
+    RegName_XMM8  = REGNAME(OpndKind_XMMReg,OpndSize_128,0), 
+    RegName_XMM9  = REGNAME(OpndKind_XMMReg,OpndSize_128,1),
+    RegName_XMM10 = REGNAME(OpndKind_XMMReg,OpndSize_128,2),
+    RegName_XMM11 = REGNAME(OpndKind_XMMReg,OpndSize_128,3),
+    RegName_XMM12 = REGNAME(OpndKind_XMMReg,OpndSize_128,4),
+    RegName_XMM13 = REGNAME(OpndKind_XMMReg,OpndSize_128,5),
+    RegName_XMM14 = REGNAME(OpndKind_XMMReg,OpndSize_128,6),
+    RegName_XMM15 = REGNAME(OpndKind_XMMReg,OpndSize_128,7),
 #endif //~_EM64T_
 
 #endif  // ~TESTING_ENCODER
@@ -441,53 +438,37 @@ Mnemonic_CMPXCHG,                       
 Mnemonic_CMPXCHG8B,                     // Compare and Exchange 8 Bytes
 Mnemonic_CMPSB,                         // Compare Two Bytes at DS:ESI and ES:EDI
 Mnemonic_CMPSW,                         // Compare Two Words at DS:ESI and ES:EDI
-#ifndef _HAVE_SIMD_
 Mnemonic_CMPSD,                         // Compare Two Doublewords at DS:ESI and ES:EDI
 //
 // double -> float
 Mnemonic_CVTSD2SS,                      // Convert Scalar Double-Precision Floating-Point Value to Scalar Single-Precision Floating-Point Value
-#endif
 // double -> I_32
-#ifndef _HAVE_SIMD_
 Mnemonic_CVTSD2SI,                      // Convert Scalar Double-Precision Floating-Point Value to Doubleword Integer
-#endif
 // double [truncated] -> I_32
 Mnemonic_CVTTSD2SI,                     // Convert with Truncation Scalar Double-Precision Floating-Point Value to Signed Doubleword Integer
 //
 // float -> double
-#ifndef _HAVE_SIMD_
 Mnemonic_CVTSS2SD,                      // Convert Scalar Single-Precision Floating-Point Value to Scalar Double-Precision Floating-Point Value
 // float -> I_32
 Mnemonic_CVTSS2SI,                      // Convert Scalar Single-Precision Floating-Point Value to Doubleword Integer
 // float [truncated] -> I_32
 Mnemonic_CVTTSS2SI,                     // Convert with Truncation Scalar Single-Precision Floating-Point Value to Doubleword Integer
-#endif
 //
 // I_32 -> double
-#ifndef _HAVE_SIMD_
 Mnemonic_CVTSI2SD,                      // Convert Doubleword Integer to Scalar Double-Precision Floating-Point Value
-#endif
 // I_32 -> float
-#ifndef _HAVE_SIMD_
 Mnemonic_CVTSI2SS,                      // Convert Doubleword Integer to Scalar Single-Precision Floating-Point Value
-#endif
 
-#ifndef _HAVE_SIMD_
 Mnemonic_COMISD,                        // Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS
 Mnemonic_COMISS,                        // Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS
-#endif
 Mnemonic_DEC,                           // Decrement by 1
 //Mnemonic_DIV,                         // Unsigned Divide
-#ifndef _HAVE_SIMD_
 Mnemonic_DIVSD,                         // Divide Scalar Double-Precision Floating-Point Values
 Mnemonic_DIVSS,                         // Divide Scalar Single-Precision Floating-Point Values
-#endif
 
 #ifdef _HAVE_MMX_
-#ifndef _HAVE_SIMD_
 Mnemonic_EMMS,                          // Empty MMX Technology State
 #endif
-#endif
 
 Mnemonic_ENTER,                         // ENTER-Make Stack Frame for Procedure Parameters
 Mnemonic_FLDCW,                         // Load FPU control word
@@ -569,25 +550,20 @@ Mnemonic_LOOPE,                         
 Mnemonic_LOOPNE, Mnemonic_LOOPNZ = Mnemonic_LOOPNE, // Loop according to ECX 
 Mnemonic_LAHF,                          // Load Flags into AH
 Mnemonic_MOV,                           // Move
-
-#ifndef _HAVE_SIMD_
 Mnemonic_MOVD,                          // Move Double word
 Mnemonic_MOVQ,                          // Move Quadword
-#endif
-
 /*Mnemonic_MOVS,                        // Move Data from String to String*/
 // MOVS is a special case: see encoding table for more details,
 Mnemonic_MOVS8, Mnemonic_MOVS16, Mnemonic_MOVS32, Mnemonic_MOVS64,
 //
+Mnemonic_MOVAPD,                         // Move Scalar Double-Precision Floating-Point Value
 Mnemonic_MOVSD,                         // Move Scalar Double-Precision Floating-Point Value
 Mnemonic_MOVSS,                         // Move Scalar Single-Precision Floating-Point Values
 Mnemonic_MOVSX,                         // Move with Sign-Extension
 Mnemonic_MOVZX,                         // Move with Zero-Extend
 //Mnemonic_MUL,                         // Unsigned Multiply
-#ifndef _HAVE_SIMD_
 Mnemonic_MULSD,                         // Multiply Scalar Double-Precision Floating-Point Values
 Mnemonic_MULSS,                         // Multiply Scalar Single-Precision Floating-Point Values
-#endif
 Mnemonic_NEG,                           // Two's Complement Negation
 Mnemonic_NOP,                           // No Operation
 Mnemonic_NOT,                           // One's Complement Negation
@@ -595,234 +571,13 @@ Mnemonic_OR,                            
 Mnemonic_PREFETCH,                      // prefetch
 
 #ifdef _HAVE_MMX_
-#ifndef _HAVE_SIMD_
     Mnemonic_PADDQ,                     // Add Packed Quadword Integers
     Mnemonic_PAND,                      // Logical AND
     Mnemonic_POR,                       // Bitwise Logical OR
     Mnemonic_PSUBQ,                     // Subtract Packed Quadword Integers
 #endif
-#endif
-
-#ifdef _HAVE_SIMD_
-    Mnemonic_ADDPD,
-    Mnemonic_ADDSUBPD,
-    Mnemonic_ADDSUBPS,
-    Mnemonic_ADDPS,
-    Mnemonic_ANDPD,
-    Mnemonic_ANDNPD,
-    Mnemonic_ANDNPS,
-    Mnemonic_CLFLUSH,
-    Mnemonic_CMPPD,
-    Mnemonic_CMPPS,
-    Mnemonic_CMPSD,
-    Mnemonic_CMPSS,
-    Mnemonic_COMISD,
-    Mnemonic_COMISS,
-    Mnemonic_CVTDQ2PD,
-    Mnemonic_CVTDQ2PS,
-    Mnemonic_CVTPS2DQ,
-    Mnemonic_CVTPD2DQ,
-    Mnemonic_CVTPD2PI,
-    Mnemonic_CVTPD2PS,
-    Mnemonic_CVTPI2PD,
-    Mnemonic_CVTPI2PS,
-    Mnemonic_CVTPS2PQ,
-    Mnemonic_CVTPS2PD,
-    Mnemonic_CVTPS2PI,
-    Mnemonic_CVTSD2SI,
-    Mnemonic_CVTSD2SS,
-    Mnemonic_CVTSI2SD,
-    Mnemonic_CVTSI2SS,
-    Mnemonic_CVTSS2SD,
-    Mnemonic_CVTSS2SI,
-    Mnemonic_CVTTPD2PI,
-    Mnemonic_CVTTPD2DQ,
-    Mnemonic_CVTTPS2DQ,
-    Mnemonic_CVTTPS2PI,
-    Mnemonic_CVTTSS2SI,
-    Mnemonic_DIVPD,
-    Mnemonic_DIVPS,
-    Mnemonic_DIVSD,
-    Mnemonic_DIVSS,
-    Mnemonic_EMMS,
-    Mnemonic_HADDPD,
-    Mnemonic_HADDPS,
-    Mnemonic_HSUBPD,
-    Mnemonic_HSUBPS,
-    Mnemonic_LDDQU,
-    Mnemonic_LDMXCSR,
-    Mnemonic_LFENCE,
-    Mnemonic_MASKMOVDQU,
-    Mnemonic_MASKMOVQ,
-    Mnemonic_MAXPD,
-    Mnemonic_MAXPS,
-    Mnemonic_MAXSD,
-    Mnemonic_MAXSS,
-    Mnemonic_MFENCE,
-    Mnemonic_MINPD,
-    Mnemonic_MINPS,
-    Mnemonic_MINSD,
-    Mnemonic_MINSS,
-    Mnemonic_MONITOR,
-
-    Mnemonic_MOVAPD,
-    Mnemonic_MOVAPS,
-    Mnemonic_MOVD,
-    Mnemonic_MOVDDUP,
-    Mnemonic_MOVDQA,
-    Mnemonic_MOVDQU,
-    Mnemonic_MOVDQ2Q,
-    Mnemonic_MOVHLPS,
-    Mnemonic_MOVHPD,
-    Mnemonic_MOVHPS,
-    Mnemonic_MOVLHPS,
-    Mnemonic_MOVLPD,
-    Mnemonic_MOVLPS,
-    Mnemonic_MOVMSKPD,
-    Mnemonic_MOVMSKPS,
-    Mnemonic_MOVNTDQ,
-    Mnemonic_MOVNTI,
-    Mnemonic_MOVNTPD,
-    Mnemonic_MOVNTPS,
-    Mnemonic_MOVNTQ,
-    Mnemonic_MOVSHDUP,
-    Mnemonic_MOVSLDUP,
-    Mnemonic_MOVQ,
-    Mnemonic_MOVQ2DQ,
-    Mnemonic_MOVUPD,
-    Mnemonic_MOVUPS,
-    Mnemonic_MULPD,
-    Mnemonic_MULPS,
-    Mnemonic_MULSD,
-    Mnemonic_MULSS,
-    Mnemonic_WAIT,
-    Mnemonic_ORPD,
-    Mnemonic_ORPS,
-    Mnemonic_PACKSSWB,
-    Mnemonic_PACKSSDW,
-    Mnemonic_PACKUSWB,
-    Mnemonic_PADDB,
-    Mnemonic_PADDW,
-    Mnemonic_PADDD,
-    Mnemonic_PADDQ,
-    Mnemonic_PADDSB,
-    Mnemonic_PADDSW,
-    Mnemonic_PADDUSB,
-    Mnemonic_PADDUSW,
-    Mnemonic_PAND,
-    Mnemonic_PANDN,
-    Mnemonic_PAVGB,
-    Mnemonic_PAVGW,
-    Mnemonic_PCMPEQB,
-    Mnemonic_PCMPEQW,
-    Mnemonic_PCMPEQD,
-    Mnemonic_PCMPEQQ,
-    Mnemonic_PCMPGTB,
-    Mnemonic_PCMPGTW,
-    Mnemonic_PCMPGTD,
-    Mnemonic_PCMPGTQ,
-    Mnemonic_PEXTRB,
-    Mnemonic_PEXTRD,
-    Mnemonic_PEXTRQ,
-    Mnemonic_PINSRB,
-    Mnemonic_PINSRD,
-    Mnemonic_PINSRQ,
-    Mnemonic_PEXTRW,
-    Mnemonic_PINSRW,
-    Mnemonic_PMOVSXBW,
-    Mnemonic_PMOVZXBW,
-    Mnemonic_PMOVSXBD,
-    Mnemonic_PMOVZXBD,
-    Mnemonic_PMOVSXBQ,
-    Mnemonic_PMOVZXBQ,
-    Mnemonic_PMOVSXWD,
-    Mnemonic_PMOVZXWD,
-    Mnemonic_PMOVSXWQ,
-    Mnemonic_PMOVZXWQ,
-    Mnemonic_PMOVSXDQ,
-    Mnemonic_PMOVZXDQ,
-    Mnemonic_PMADDWD,
-    Mnemonic_PABSB,
-    Mnemonic_PABSW,
-    Mnemonic_PABSD,
-    Mnemonic_PMAXSB,
-    Mnemonic_PMAXSW,
-    Mnemonic_PMAXSD,
-    Mnemonic_PMAXUB,
-    Mnemonic_PMINSB,
-    Mnemonic_PMINSW,
-    Mnemonic_PMINSD,
-    Mnemonic_PMINUB,
-    Mnemonic_PMOVMSKB,
-    Mnemonic_PMULHUW,
-    Mnemonic_PMULHW,
-    Mnemonic_PMULLD,
-    Mnemonic_PMULLW,
-    Mnemonic_PMULDQ,
-    Mnemonic_PMULUDQ,
-    Mnemonic_POR,
-    Mnemonic_PSADBW,
-    Mnemonic_PSHUFB,
-    Mnemonic_PSHUFD,
-    Mnemonic_PSHUFHW,
-    Mnemonic_PSHUFLW,
-    Mnemonic_PSHUFW,
-    Mnemonic_PSLLDQ,
-    Mnemonic_PSLLW,
-    Mnemonic_PSLLD,
-    Mnemonic_PSLLQ,
-    Mnemonic_PSRAW,
-    Mnemonic_PSRAD,
-    Mnemonic_PSRLW,
-    Mnemonic_PSRLD,
-    Mnemonic_PSRLQ,
-    Mnemonic_PSRLDQ,
-    Mnemonic_PSUBB,
-    Mnemonic_PSUBW,
-    Mnemonic_PSUBD,
-    Mnemonic_PSUBQ,
-    Mnemonic_PSUBSB,
-    Mnemonic_PSUBSW,
-    Mnemonic_PSUBUSB,
-    Mnemonic_PSUBUSW,
-    Mnemonic_PUNPCKHBW,
-    Mnemonic_PUNPCKHWD,
-    Mnemonic_PUNPCKHDQ,
-    Mnemonic_PUNPCKHQDQ,
-    Mnemonic_PUNPCKLBW,
-    Mnemonic_PUNPCKLWD,
-    Mnemonic_PUNPCKLDQ,
-    Mnemonic_PUNPCKLQDQ,
-    Mnemonic_PXOR,
-    Mnemonic_RCPPS,
-    Mnemonic_RSQRTPS,
-    Mnemonic_RSQRTSS,
-    Mnemonic_SHUFPD,
-    Mnemonic_SHUFPS,
-    Mnemonic_SQRTPD,
-    Mnemonic_SQRTPS,
-    Mnemonic_SQRTSD,
-    Mnemonic_SQRTSS,
-    Mnemonic_STMXCSR,
-    Mnemonic_SUBPD,
-    Mnemonic_SUBPS,
-    Mnemonic_SUBSD,
-    Mnemonic_SUBSS,
-    Mnemonic_UNPCKHPD,
-    Mnemonic_UNPCKHPS,
-    Mnemonic_UNPCKLPD,
-    Mnemonic_UNPCKLPS,
-    Mnemonic_XORPD,
-    Mnemonic_XORPS,
-    Mnemonic_PCMPESTRI,
-    Mnemonic_PCMPESTRM,
-    Mnemonic_PCMPISTRI,
-    Mnemonic_PCMPISTRM,
-#endif
 
-#ifndef _HAVE_SIMD_
 Mnemonic_PXOR,                          // Logical Exclusive OR
-#endif
 Mnemonic_POP,                           // Pop a Value from the Stack
 Mnemonic_POPFD,                         // Pop a Value of EFLAGS register from the Stack
 Mnemonic_PUSH,                          // Push Word or Doubleword Onto the Stack
@@ -859,10 +614,8 @@ Mnemonic_SHLD,                          
 
 Mnemonic_SBB,                           // Integer Subtraction with Borrow
 Mnemonic_SUB,                           // Subtract
-#ifndef _HAVE_SIMD_
 Mnemonic_SUBSD,                         // Subtract Scalar Double-Precision Floating-Point Values
 Mnemonic_SUBSS,                         // Subtract Scalar Single-Precision Floating-Point Values
-#endif
 
 Mnemonic_TEST,                          // Logical Compare
 
@@ -873,18 +626,14 @@ Mnemonic_XOR,                           
 //
 // packed things,
 //
-#ifndef _HAVE_SIMD_
 Mnemonic_XORPD,                         // Bitwise Logical XOR for Double-Precision Floating-Point Values
 Mnemonic_XORPS,                         // Bitwise Logical XOR for Single-Precision Floating-Point Values
 
 Mnemonic_CVTDQ2PD,                      // Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point Values
 Mnemonic_CVTTPD2DQ,                     // Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Doubleword Integers
-#endif
 
-#ifndef _HAVE_SIMD_
 Mnemonic_CVTDQ2PS,                      // Convert Packed Doubleword Integers to Packed Single-Precision Floating-Point Values
 Mnemonic_CVTTPS2DQ,                     // Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Doubleword Integers
-#endif
 //
 // String operations
 //
@@ -894,9 +643,7 @@ Mnemonic_SCAS,                          
 Mnemonic_STOS,                          // Store string
 
 //
-#ifndef _HAVE_SIMD_
 Mnemonic_WAIT,                          // Check pending pending unmasked floating-point exception
-#endif
 //
 Mnemonic_Count
 };

Modified: harmony/enhanced/java/trunk/drlvm/vm/port/src/encoder/ia32_em64t/enc_prvt.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/drlvm/vm/port/src/encoder/ia32_em64t/enc_prvt.h?rev=952128&r1=952127&r2=952128&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/drlvm/vm/port/src/encoder/ia32_em64t/enc_prvt.h (original)
+++ harmony/enhanced/java/trunk/drlvm/vm/port/src/encoder/ia32_em64t/enc_prvt.h Mon Jun  7 07:47:11 2010
@@ -102,9 +102,6 @@ enum OpcodeByteKind {
 #define DU_DU_U     {3, 2, 3, (((OpndRole_Def|OpndRole_Use)<<4) | ((OpndRole_Def|OpndRole_Use)<<2) | OpndRole_Use) }
 #define D_DU_U      {3, 2, 2, (((OpndRole_Def)<<4) | ((OpndRole_Def|OpndRole_Use)<<2) | OpndRole_Use) }
 #define D_U_U       {3, 1, 2, (((OpndRole_Def)<<4) | ((OpndRole_Use)<<2) | OpndRole_Use) }
-#define DU_U_U      {3, 1, 3, (((OpndRole_Def|OpndRole_Use)<<4) | ((OpndRole_Use)<<2) | OpndRole_Use) }
-#define D_U_U_U_U_U {6, 1, 5, (((OpndRole_Def)<<10)| ((OpndRole_Use)<<8) | ((OpndRole_Use)<<6) | ((OpndRole_Use)<<4) | ((OpndRole_Use)<<2) | OpndRole_Use) }
-#define D_U_U_U     {4, 1, 3, (((OpndRole_Def)<<6) | ((OpndRole_Use)<<4) | ((OpndRole_Use)<<2) | OpndRole_Use) }
 
 // Special encoding of 0x00 opcode byte. Note: it's all O-s, not zeros.
 #define OxOO        OpcodeByteKind_ZeroOpcodeByte
@@ -142,7 +139,6 @@ enum OpcodeByteKind {
 #define AH          {OpndKind_GPReg, OpndSize_8, RegName_AH}
 #define AX          {OpndKind_GPReg, OpndSize_16, RegName_AX}
 #define EAX         {OpndKind_GPReg, OpndSize_32, RegName_EAX}
-#define DS	    {OpndKind_SReg, OpndSize_16, RegName_EAX}
 #ifdef _EM64T_
     #define RAX     {OpndKind_GPReg, OpndSize_64, RegName_RAX }
 #endif
@@ -169,8 +165,6 @@ enum OpcodeByteKind {
     #define RDI     { OpndKind_GPReg, OpndSize_64, RegName_RDI }
 #endif
 
-#define XMM0        {OpndKind_XMMReg, OpndSize_128, RegName_XMM0}
-
 #define r8          {OpndKind_GPReg, OpndSize_8, RegName_Null}
 #define r16         {OpndKind_GPReg, OpndSize_16, RegName_Null}
 #define r32         {OpndKind_GPReg, OpndSize_32, RegName_Null}
@@ -189,7 +183,6 @@ enum OpcodeByteKind {
 #define m16         {OpndKind_Mem, OpndSize_16, RegName_Null}
 #define m32         {OpndKind_Mem, OpndSize_32, RegName_Null}
 #define m64         {OpndKind_Mem, OpndSize_64, RegName_Null}
-#define m128         {OpndKind_Mem, OpndSize_128, RegName_Null}
 #ifdef _EM64T_
     #define r_m64   { (OpndKind)(OpndKind_GPReg|OpndKind_Mem),      OpndSize_64, RegName_Null }
 #endif
@@ -217,8 +210,6 @@ enum OpcodeByteKind {
 
 #define mm64        {OpndKind_MMXReg, OpndSize_64, RegName_Null}
 #define mm_m64      {(OpndKind)(OpndKind_MMXReg|OpndKind_Mem), OpndSize_64, RegName_Null} 
-#define xmm128       {OpndKind_XMMReg, OpndSize_128, RegName_Null}
-#define xmm_m128     {(OpndKind)(OpndKind_XMMReg|OpndKind_Mem), OpndSize_128, RegName_Null} 
 
 #define xmm64       {OpndKind_XMMReg, OpndSize_64, RegName_Null}
 #define xmm_m64     {(OpndKind)(OpndKind_XMMReg|OpndKind_Mem), OpndSize_64, RegName_Null} 
@@ -295,8 +286,8 @@ struct OpcodeInfo {
         decoder64,
     };
     platform                        platf;
-    unsigned                        opcode[5+1+1];
-    EncoderBase::OpndDesc           opnds[6];
+    unsigned                        opcode[4+1+1];
+    EncoderBase::OpndDesc           opnds[3];
     EncoderBase::OpndRolesDesc      roles;
 };