1// -*- mode:c++ -*- 2 3// Copyright (c) 2010-2011, 2015 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 --- 2925 unchanged lines hidden (view full) --- 2934 } else { 2935 destElem += srcElem1; 2936 } 2937 ''' 2938 twoRegShiftInst("vrsra", "NVrsraD", "SimdShiftAccOp", allTypes, 2, vrsraCode, True) 2939 twoRegShiftInst("vrsra", "NVrsraQ", "SimdShiftAccOp", allTypes, 4, vrsraCode, True) 2940 2941 vsriCode = ''' |
2942 if (imm >= sizeof(Element) * 8) { |
2943 destElem = destElem; |
2944 } else { |
2945 destElem = (srcElem1 >> imm) | 2946 (destElem & ~mask(sizeof(Element) * 8 - imm)); |
2947 } |
2948 ''' 2949 twoRegShiftInst("vsri", "NVsriD", "SimdShiftOp", unsignedTypes, 2, vsriCode, True) 2950 twoRegShiftInst("vsri", "NVsriQ", "SimdShiftOp", unsignedTypes, 4, vsriCode, True) 2951 2952 vshlCode = ''' |
2953 if (imm >= sizeof(Element) * 8) { |
2954 destElem = (srcElem1 << (sizeof(Element) * 8 - 1)) << 1; |
2955 } else { |
2956 destElem = srcElem1 << imm; |
2957 } |
2958 ''' 2959 twoRegShiftInst("vshl", "NVshlD", "SimdShiftOp", unsignedTypes, 2, vshlCode) 2960 twoRegShiftInst("vshl", "NVshlQ", "SimdShiftOp", unsignedTypes, 4, vshlCode) 2961 2962 vsliCode = ''' |
2963 if (imm >= sizeof(Element) * 8) { |
2964 destElem = destElem; |
2965 } else { |
2966 destElem = (srcElem1 << imm) | (destElem & mask(imm)); |
2967 } |
2968 ''' 2969 twoRegShiftInst("vsli", "NVsliD", "SimdShiftOp", unsignedTypes, 2, vsliCode, True) 2970 twoRegShiftInst("vsli", "NVsliQ", "SimdShiftOp", unsignedTypes, 4, vsliCode, True) 2971 2972 vqshlCode = ''' 2973 FPSCR fpscr = (FPSCR) FpscrQc; 2974 if (imm >= sizeof(Element) * 8) { 2975 if (srcElem1 != 0) { --- 917 unchanged lines hidden --- |