Deleted Added
sdiff udiff text old ( 10037:5cac77888310 ) new ( 11165:d90aec9435bd )
full compact
1// Copyright (c) 2012-2013 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

--- 26 unchanged lines hidden (view full) ---

35//
36// Authors: Giacomo Gabrielli
37// Mbou Eyole
38
39output header {{
40namespace Aarch64
41{
42 // AdvSIMD three same
43 StaticInstPtr decodeNeon3Same(ExtMachInst machInst);
44 // AdvSIMD three different
45 StaticInstPtr decodeNeon3Diff(ExtMachInst machInst);
46 // AdvSIMD two-reg misc
47 StaticInstPtr decodeNeon2RegMisc(ExtMachInst machInst);
48 // AdvSIMD across lanes
49 StaticInstPtr decodeNeonAcrossLanes(ExtMachInst machInst);
50 // AdvSIMD copy
51 StaticInstPtr decodeNeonCopy(ExtMachInst machInst);
52 // AdvSIMD vector x indexed element
53 StaticInstPtr decodeNeonIndexedElem(ExtMachInst machInst);
54 // AdvSIMD modified immediate
55 StaticInstPtr decodeNeonModImm(ExtMachInst machInst);
56 // AdvSIMD shift by immediate
57 StaticInstPtr decodeNeonShiftByImm(ExtMachInst machInst);
58 // AdvSIMD TBL/TBX
59 StaticInstPtr decodeNeonTblTbx(ExtMachInst machInst);
60 // AdvSIMD ZIP/UZP/TRN
61 StaticInstPtr decodeNeonZipUzpTrn(ExtMachInst machInst);
62 // AdvSIMD EXT
63 StaticInstPtr decodeNeonExt(ExtMachInst machInst);
64
65 // AdvSIMD scalar three same
66 StaticInstPtr decodeNeonSc3Same(ExtMachInst machInst);
67 // AdvSIMD scalar three different
68 StaticInstPtr decodeNeonSc3Diff(ExtMachInst machInst);
69 // AdvSIMD scalar two-reg misc
70 StaticInstPtr decodeNeonSc2RegMisc(ExtMachInst machInst);
71 // AdvSIMD scalar pairwise
72 StaticInstPtr decodeNeonScPwise(ExtMachInst machInst);
73 // AdvSIMD scalar copy
74 StaticInstPtr decodeNeonScCopy(ExtMachInst machInst);
75 // AdvSIMD scalar x indexed element
76 StaticInstPtr decodeNeonScIndexedElem(ExtMachInst machInst);
77 // AdvSIMD scalar shift by immediate
78 StaticInstPtr decodeNeonScShiftByImm(ExtMachInst machInst);
79
80 // AdvSIMD load/store
81 StaticInstPtr decodeNeonMem(ExtMachInst machInst);
82}
83}};
84
85output decoder {{
86namespace Aarch64
87{
88 StaticInstPtr
89 decodeNeon3Same(ExtMachInst machInst)
90 {
91 uint8_t q = bits(machInst, 30);
92 uint8_t u = bits(machInst, 29);
93 uint8_t size = bits(machInst, 23, 22);
94 uint8_t opcode = bits(machInst, 15, 11);
95

--- 1166 unchanged lines hidden (view full) ---

1262 default:
1263 return new Unknown64(machInst);
1264 }
1265 default:
1266 return new Unknown64(machInst);
1267 }
1268 }
1269
1270 StaticInstPtr
1271 decodeNeonIndexedElem(ExtMachInst machInst)
1272 {
1273 uint8_t q = bits(machInst, 30);
1274 uint8_t u = bits(machInst, 29);
1275 uint8_t size = bits(machInst, 23, 22);
1276 uint8_t L = bits(machInst, 21);
1277 uint8_t M = bits(machInst, 20);

--- 1349 unchanged lines hidden ---