pred_inst.hh (7720:65d338a8dba4) | pred_inst.hh (7853:69aae4379062) |
---|---|
1/* 2 * Copyright (c) 2010 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 64 unchanged lines hidden (view full) --- 73 } 74 } 75 bigCtrl = (bigCtrl << 1) | ((bigData >> 7) & 0x1); 76 bigData |= (1 << 7); 77 return bigData << (32 - bigCtrl); 78} 79 80static inline uint64_t | 1/* 2 * Copyright (c) 2010 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 64 unchanged lines hidden (view full) --- 73 } 74 } 75 bigCtrl = (bigCtrl << 1) | ((bigData >> 7) & 0x1); 76 bigData |= (1 << 7); 77 return bigData << (32 - bigCtrl); 78} 79 80static inline uint64_t |
81simd_modified_imm(bool op, uint8_t cmode, uint8_t data) | 81simd_modified_imm(bool op, uint8_t cmode, uint8_t data, bool &immValid) |
82{ 83 uint64_t bigData = data; | 82{ 83 uint64_t bigData = data; |
84 immValid = true; |
|
84 switch (cmode) { 85 case 0x0: 86 case 0x1: 87 bigData = (bigData << 0) | (bigData << 32); 88 break; 89 case 0x2: 90 case 0x3: 91 bigData = (bigData << 8) | (bigData << 40); --- 42 unchanged lines hidden (view full) --- 134 case 0xf: 135 if (!op) { 136 uint64_t bVal = bits(bigData, 6) ? (0x1F) : (0x20); 137 bigData = (bits(bigData, 5, 0) << 19) | 138 (bVal << 25) | (bits(bigData, 7) << 31); 139 bigData |= (bigData << 32); 140 break; 141 } | 85 switch (cmode) { 86 case 0x0: 87 case 0x1: 88 bigData = (bigData << 0) | (bigData << 32); 89 break; 90 case 0x2: 91 case 0x3: 92 bigData = (bigData << 8) | (bigData << 40); --- 42 unchanged lines hidden (view full) --- 135 case 0xf: 136 if (!op) { 137 uint64_t bVal = bits(bigData, 6) ? (0x1F) : (0x20); 138 bigData = (bits(bigData, 5, 0) << 19) | 139 (bVal << 25) | (bits(bigData, 7) << 31); 140 bigData |= (bigData << 32); 141 break; 142 } |
142 // Fall through | 143 // Fall through, immediate encoding is invalid. |
143 default: | 144 default: |
144 panic("Illegal modified SIMD immediate parameters.\n"); | 145 immValid = false; 146 break; |
145 } 146 return bigData; 147} 148 149static inline uint64_t 150vfp_modified_imm(uint8_t data, bool wide) 151{ 152 uint64_t bigData = data; --- 195 unchanged lines hidden --- | 147 } 148 return bigData; 149} 150 151static inline uint64_t 152vfp_modified_imm(uint8_t data, bool wide) 153{ 154 uint64_t bigData = data; --- 195 unchanged lines hidden --- |