data.isa (7252:bba68021edca) | data.isa (7255:61445190b527) |
---|---|
1// Copyright (c) 2010 ARM Limited 2// All rights reserved 3// 4// The license below extends only to copyright in the software and shall 5// not be construed as granting a license to any other intellectual 6// property including but not limited to intellectual property relating 7// to a hardware implementation of the functionality of the software 8// licensed hereunder. You may use the software subject to the license --- 21 unchanged lines hidden (view full) --- 30// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 31// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 32// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 33// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 34// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 35// 36// Authors: Gabe Black 37 | 1// Copyright (c) 2010 ARM Limited 2// All rights reserved 3// 4// The license below extends only to copyright in the software and shall 5// not be construed as granting a license to any other intellectual 6// property including but not limited to intellectual property relating 7// to a hardware implementation of the functionality of the software 8// licensed hereunder. You may use the software subject to the license --- 21 unchanged lines hidden (view full) --- 30// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 31// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 32// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 33// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 34// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 35// 36// Authors: Gabe Black 37 |
38def format ArmUsad() {{ | 38def format ArmMiscMedia() {{ |
39 decode_block = ''' 40 { | 39 decode_block = ''' 40 { |
41 const IntRegIndex rd = (IntRegIndex)(uint32_t)bits(machInst, 19, 16); | 41 const uint32_t op1 = bits(machInst, 22, 20); 42 const uint32_t op2 = bits(machInst, 7, 5); |
42 const IntRegIndex rn = (IntRegIndex)(uint32_t)bits(machInst, 3, 0); | 43 const IntRegIndex rn = (IntRegIndex)(uint32_t)bits(machInst, 3, 0); |
43 const IntRegIndex rm = (IntRegIndex)(uint32_t)bits(machInst, 11, 8); | |
44 const IntRegIndex ra = (IntRegIndex)(uint32_t)bits(machInst, 15, 12); | 44 const IntRegIndex ra = (IntRegIndex)(uint32_t)bits(machInst, 15, 12); |
45 if (ra == 0xf) { 46 return new Usad8(machInst, rd, rn, rm); 47 } else { 48 return new Usada8(machInst, rd, rn, rm, ra); | 45 if (op1 == 0 && op2 == 0) { 46 const IntRegIndex rd = 47 (IntRegIndex)(uint32_t)bits(machInst, 19, 16); 48 const IntRegIndex rm = 49 (IntRegIndex)(uint32_t)bits(machInst, 11, 8); 50 if (ra == 0xf) { 51 return new Usad8(machInst, rd, rn, rm); 52 } else { 53 return new Usada8(machInst, rd, rn, rm, ra); 54 } 55 } else if (bits(op2, 1, 0) == 0x2) { 56 if (bits(op1, 2, 1) == 0x3) { 57 return new WarnUnimplemented("ubfx", machInst); 58 } else if (bits(op1, 2, 1) == 0x1) { 59 return new WarnUnimplemented("sbfx", machInst); 60 } 61 } else if (bits(op2, 1, 0) == 0x0 && bits(op1, 2, 1) == 0x2) { 62 if (rn == 0xf) { 63 return new WarnUnimplemented("bfc", machInst); 64 } else { 65 return new WarnUnimplemented("bfi", machInst); 66 } |
49 } | 67 } |
68 return new Unknown(machInst); |
|
50 } 51 ''' 52}}; 53 54def format ArmDataProcReg() {{ 55 pclr = ''' 56 return new %(className)ssRegPclr(machInst, %(dest)s, 57 %(op1)s, rm, imm5, --- 1292 unchanged lines hidden --- | 69 } 70 ''' 71}}; 72 73def format ArmDataProcReg() {{ 74 pclr = ''' 75 return new %(className)ssRegPclr(machInst, %(dest)s, 76 %(op1)s, rm, imm5, --- 1292 unchanged lines hidden --- |