Deleted Added
sdiff udiff text old ( 7783:9b880b40ac10 ) new ( 7853:69aae4379062 )
full compact
1// -*- mode:c++ -*-
2
3// Copyright (c) 2010 ARM Limited
4// All rights reserved
5//
6// The license below extends only to copyright in the software and shall
7// not be construed as granting a license to any other intellectual
8// property including but not limited to intellectual property relating

--- 857 unchanged lines hidden (view full) ---

866 if readDest:
867 eWalkCode += '''
868 destReg.regs[%(reg)d] = htog(FpDestP%(reg)d.uw);
869 ''' % { "reg" : reg }
870 readDestCode = ''
871 if readDest:
872 readDestCode = 'destElem = gtoh(destReg.elements[i]);'
873 eWalkCode += '''
874 assert(imm >= 0 && imm < eCount);
875 for (unsigned i = 0; i < eCount; i++) {
876 Element srcElem1 = gtoh(srcReg1.elements[i]);
877 Element srcElem2 = gtoh(srcReg2.elements[imm]);
878 Element destElem;
879 %(readDest)s
880 %(op)s
881 destReg.elements[i] = htog(destElem);
882 }
883 ''' % { "op" : op, "readDest" : readDestCode }
884 for reg in range(rCount):
885 eWalkCode += '''
886 FpDestP%(reg)d.uw = gtoh(destReg.regs[%(reg)d]);
887 ''' % { "reg" : reg }
888 iop = InstObjParams(name, Name,
889 "RegRegRegImmOp",

--- 24 unchanged lines hidden (view full) ---

914 for reg in range(2 * rCount):
915 eWalkCode += '''
916 destReg.regs[%(reg)d] = htog(FpDestP%(reg)d.uw);
917 ''' % { "reg" : reg }
918 readDestCode = ''
919 if readDest:
920 readDestCode = 'destElem = gtoh(destReg.elements[i]);'
921 eWalkCode += '''
922 assert(imm >= 0 && imm < eCount);
923 for (unsigned i = 0; i < eCount; i++) {
924 Element srcElem1 = gtoh(srcReg1.elements[i]);
925 Element srcElem2 = gtoh(srcReg2.elements[imm]);
926 BigElement destElem;
927 %(readDest)s
928 %(op)s
929 destReg.elements[i] = htog(destElem);
930 }
931 ''' % { "op" : op, "readDest" : readDestCode }
932 for reg in range(2 * rCount):
933 eWalkCode += '''
934 FpDestP%(reg)d.uw = gtoh(destReg.regs[%(reg)d]);
935 ''' % { "reg" : reg }
936 iop = InstObjParams(name, Name,
937 "RegRegRegImmOp",

--- 22 unchanged lines hidden (view full) ---

960 if readDest:
961 eWalkCode += '''
962 destRegs[%(reg)d] = FpDestP%(reg)d;
963 ''' % { "reg" : reg }
964 readDestCode = ''
965 if readDest:
966 readDestCode = 'destReg = destRegs[i];'
967 eWalkCode += '''
968 assert(imm >= 0 && imm < rCount);
969 for (unsigned i = 0; i < rCount; i++) {
970 FloatReg srcReg1 = srcRegs1[i];
971 FloatReg srcReg2 = srcRegs2[imm];
972 FloatReg destReg;
973 %(readDest)s
974 %(op)s
975 destRegs[i] = destReg;
976 }
977 ''' % { "op" : op, "readDest" : readDestCode }
978 for reg in range(rCount):
979 eWalkCode += '''
980 FpDestP%(reg)d = destRegs[%(reg)d];
981 ''' % { "reg" : reg }
982 iop = InstObjParams(name, Name,
983 "FpRegRegRegImmOp",

--- 2288 unchanged lines hidden (view full) ---

3272
3273 vextCode = '''
3274 for (unsigned i = 0; i < eCount; i++) {
3275 unsigned index = i + imm;
3276 if (index < eCount) {
3277 destReg.elements[i] = srcReg1.elements[index];
3278 } else {
3279 index -= eCount;
3280 assert(index < eCount);
3281 destReg.elements[i] = srcReg2.elements[index];
3282 }
3283 }
3284 '''
3285 buildVext("vext", "NVextD", "SimdAluOp", ("uint8_t",), 2, vextCode)
3286 buildVext("vext", "NVextQ", "SimdAluOp", ("uint8_t",), 4, vextCode)
3287
3288 def buildVtbxl(name, Name, opClass, length, isVtbl):
3289 global header_output, decoder_output, exec_output

--- 62 unchanged lines hidden ---