neon.isa (10829:1e38e545823b) neon.isa (11443:df24b9af42c7)
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 = '''
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)
2942 if (imm >= sizeof(Element) * 8) {
2943 destElem = destElem;
2943 destElem = destElem;
2944 else
2944 } else {
2945 destElem = (srcElem1 >> imm) |
2946 (destElem & ~mask(sizeof(Element) * 8 - imm));
2945 destElem = (srcElem1 >> imm) |
2946 (destElem & ~mask(sizeof(Element) * 8 - imm));
2947 }
2947 '''
2948 twoRegShiftInst("vsri", "NVsriD", "SimdShiftOp", unsignedTypes, 2, vsriCode, True)
2949 twoRegShiftInst("vsri", "NVsriQ", "SimdShiftOp", unsignedTypes, 4, vsriCode, True)
2950
2951 vshlCode = '''
2948 '''
2949 twoRegShiftInst("vsri", "NVsriD", "SimdShiftOp", unsignedTypes, 2, vsriCode, True)
2950 twoRegShiftInst("vsri", "NVsriQ", "SimdShiftOp", unsignedTypes, 4, vsriCode, True)
2951
2952 vshlCode = '''
2952 if (imm >= sizeof(Element) * 8)
2953 if (imm >= sizeof(Element) * 8) {
2953 destElem = (srcElem1 << (sizeof(Element) * 8 - 1)) << 1;
2954 destElem = (srcElem1 << (sizeof(Element) * 8 - 1)) << 1;
2954 else
2955 } else {
2955 destElem = srcElem1 << imm;
2956 destElem = srcElem1 << imm;
2957 }
2956 '''
2957 twoRegShiftInst("vshl", "NVshlD", "SimdShiftOp", unsignedTypes, 2, vshlCode)
2958 twoRegShiftInst("vshl", "NVshlQ", "SimdShiftOp", unsignedTypes, 4, vshlCode)
2959
2960 vsliCode = '''
2958 '''
2959 twoRegShiftInst("vshl", "NVshlD", "SimdShiftOp", unsignedTypes, 2, vshlCode)
2960 twoRegShiftInst("vshl", "NVshlQ", "SimdShiftOp", unsignedTypes, 4, vshlCode)
2961
2962 vsliCode = '''
2961 if (imm >= sizeof(Element) * 8)
2963 if (imm >= sizeof(Element) * 8) {
2962 destElem = destElem;
2964 destElem = destElem;
2963 else
2965 } else {
2964 destElem = (srcElem1 << imm) | (destElem & mask(imm));
2966 destElem = (srcElem1 << imm) | (destElem & mask(imm));
2967 }
2965 '''
2966 twoRegShiftInst("vsli", "NVsliD", "SimdShiftOp", unsignedTypes, 2, vsliCode, True)
2967 twoRegShiftInst("vsli", "NVsliQ", "SimdShiftOp", unsignedTypes, 4, vsliCode, True)
2968
2969 vqshlCode = '''
2970 FPSCR fpscr = (FPSCR) FpscrQc;
2971 if (imm >= sizeof(Element) * 8) {
2972 if (srcElem1 != 0) {

--- 917 unchanged lines hidden ---
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 ---