fp.isa (7178:7f0ac1abc621) | fp.isa (7321:d0fdf3452086) |
---|---|
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 --- 193 unchanged lines hidden (view full) --- 202 } else if (bits(opcode, 1, 0) == 0x1) { 203 return new WarnUnimplemented("vldr", machInst); 204 } 205 } 206 return new Unknown(machInst); 207 } 208 ''' 209}}; | 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 --- 193 unchanged lines hidden (view full) --- 202 } else if (bits(opcode, 1, 0) == 0x1) { 203 return new WarnUnimplemented("vldr", machInst); 204 } 205 } 206 return new Unknown(machInst); 207 } 208 ''' 209}}; |
210 211def format ShortFpTransfer() {{ 212 decode_block = ''' 213 { 214 const uint32_t l = bits(machInst, 20); 215 const uint32_t c = bits(machInst, 8); 216 const uint32_t a = bits(machInst, 23, 21); 217 const uint32_t b = bits(machInst, 6, 5); 218 if ((machInst.thumb == 1 && bits(machInst, 28) == 1) || 219 (machInst.thumb == 0 && machInst.condCode == 0xf)) { 220 return new Unknown(machInst); 221 } 222 if (l == 0 && c == 0) { 223 if (a == 0) { 224 // A8-648 225 return new WarnUnimplemented("vmov", machInst); 226 } else if (a == 0x7) { 227 // A8-660 228 // B6-29 229 return new WarnUnimplemented("vmsr", machInst); 230 } 231 } else if (l == 0 && c == 1) { 232 if (bits(a, 2) == 0) { 233 // A8-644 234 return new WarnUnimplemented("vmov", machInst); 235 } else if (bits(b, 1) == 0) { 236 // A8-594 237 return new WarnUnimplemented("vdup", machInst); 238 } 239 } else if (l == 1 && c == 0) { 240 if (a == 0) { 241 // A8-648 242 return new WarnUnimplemented("vmov", machInst); 243 } else if (a == 7) { 244 // A8-658 245 // B6-27 246 return new WarnUnimplemented("vmrs", machInst); 247 } 248 } else { 249 // A8-646 250 return new WarnUnimplemented("vmov", machInst); 251 } 252 return new Unknown(machInst); 253 } 254 ''' 255}}; |
|