Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(269)

Side by Side Diff: src/trusted/validator_arm/armv7.table

Issue 11569019: Fix uses in ARM table media_instructions. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | src/trusted/validator_arm/baseline_classes.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # ARMv7 Instruction Encodings 1 # ARMv7 Instruction Encodings
2 # 2 #
3 # This table is derived from the "ARM Architecture Reference Manual, ARMv7-A 3 # This table is derived from the "ARM Architecture Reference Manual, ARMv7-A
4 # and ARMv7-R edition" and is used here with the permission of ARM Limited. 4 # and ARMv7-R edition" and is used here with the permission of ARM Limited.
5 # Reproduction for purposes other than the development and distribution of 5 # Reproduction for purposes other than the development and distribution of
6 # Native Client may require the explicit permission of ARM Limited. 6 # Native Client may require the explicit permission of ARM Limited.
7 7
8 # This file defines the Native Client "instruction classes" assigned to every 8 # This file defines the Native Client "instruction classes" assigned to every
9 # possible ARMv7 instruction encoding. It is organized into a series of tables, 9 # possible ARMv7 instruction encoding. It is organized into a series of tables,
10 # and directly parallels the ARM Architecture Reference Manual cited above. 10 # and directly parallels the ARM Architecture Reference Manual cited above.
(...skipping 1248 matching lines...) Expand 10 before | Expand all | Expand 10 after
1259 | 1001 1101 000000000100 = Store2RegisterImm12OpRnNotRtOnWriteback 1259 | 1001 1101 000000000100 = Store2RegisterImm12OpRnNotRtOnWriteback
1260 Push_Rule_123_A2_P248 1260 Push_Rule_123_A2_P248
1261 cccc010100101101tttt000000000100 1261 cccc010100101101tttt000000000100
1262 | else: = Store2RegisterImm12Op 1262 | else: = Store2RegisterImm12Op
1263 => StoreBasedImmedMemory 1263 => StoreBasedImmedMemory
1264 Str_Rule_194_A1_P384 1264 Str_Rule_194_A1_P384
1265 cccc010pu0w0nnnnttttiiiiiiiiiiii 1265 cccc010pu0w0nnnnttttiiiiiiiiiiii
1266 & ~cccc010100101101tttt000000000100 1266 & ~cccc010100101101tttt000000000100
1267 +-- 1267 +--
1268 1268
1269 # TODO(karl): Add uses to corresponding classes.
1270 +-- media_instructions (See Section A5.4) 1269 +-- media_instructions (See Section A5.4)
1270 *RdRnRm
1271 { cond(31:28), Rd(19:16), Rm(11:8), Rn(3:0) }
1272 baseline := Binary3RegisterOpAltA;
1273 defs := {Rd};
1274 uses := {Rn, Rm};
1275 safety := Pc in {Rd, Rn, Rm} => UNPREDICTABLE;
1276 *RdRnRmRa
1277 { cond(31:28), Rd(19:16), Ra(15:12), Rm(11:8), Rn(3:0) }
1278 baseline := Binary4RegisterDualOp;
1279 defs := {Rd};
1280 uses := {Rn, Rm, Ra};
1281 safety := Ra == Pc => DECODER_ERROR &
1282 Pc in {Rd, Rn, Rm} => UNPREDICTABLE;
1283 *RdRnLsbMsb
1284 { cond(31:28), msb(20:16), Rd(15:12), lsb(11:7), Rn(3:0) }
1285 baseline := Binary2RegisterBitRangeMsbGeLsb;
1286 defs := {Rd};
1287 uses := {Rn};
1288 safety := Rn == Pc => DECODER_ERROR &
1289 Rd == Pc => UNPREDICTABLE &
1290 msb < lsb => UNPREDICTABLE;
1291 *RdRnLsbWidth
1292 { cond(31:28), widthm1(20:16), Rd(15:12), lsb(11:7), Rn(3:0) }
1293 baseline := Binary2RegisterBitRangeNotRnIsPcBitfieldExtract;
1294 defs := {Rd};
1295 uses := {Rn};
1296 safety := Pc in {Rd, Rn} => UNPREDICTABLE &
1297 lsb + widthm1 > 31 => UNPREDICTABLE;
1298 *RdLsbWidth
1299 { cond(31:28), msb(20:16), Rd(15:12), lsb(11:7) }
1300 baseline := Unary1RegisterBitRangeMsbGeLsb;
1301 defs := {Rd};
1302 safety := Rd == Pc => UNPREDICTABLE &
1303 msb < lsb => UNPREDICTABLE;
1304 +--
1271 | op1(24:20) op2(7:5) Rd(15:12) Rn(3:0) 1305 | op1(24:20) op2(7:5) Rd(15:12) Rn(3:0)
1272 | 000xx - - - ->parallel_addition_and_subtraction_signed 1306 | 000xx - - - ->parallel_addition_and_subtraction_signed
1273 | 001xx - - - ->parallel_addition_and_subtraction_unsign ed 1307 | 001xx - - - ->parallel_addition_and_subtraction_unsign ed
1274 | 01xxx - - - ->packing_unpacking_saturation_and_reversa l 1308 | 01xxx - - - ->packing_unpacking_saturation_and_reversa l
1275 | 10xxx - - - ->signed_multiply_signed_and_unsigned_divi de 1309 | 10xxx - - - ->signed_multiply_signed_and_unsigned_divi de
1276 | 11000 000 1111 - = Binary3RegisterOpAltA 1310 | 11000 000 1111 -
1277 => Defs16To19CondsDontCareRdRmRnNotPc 1311 = *RdRnRm
1278 Usad8_Rule_253_A1_P500 1312 pattern := cccc01111000dddd1111mmmm0001nnnn;
1279 cccc01111000dddd1111mmmm0001nnnn 1313 rule := USAD8; arch := v6;
1280 RegsNotPc (v6) 1314 | " " ~1111 -
1281 | " " ~1111 - = Binary4RegisterDualOp 1315 = *RdRnRmRa
1282 => Defs16To19CondsDontCareRdRaRmRnNotPc 1316 pattern := cccc01111000ddddaaaammmm0001nnnn;
1283 Usada8_Rule_254_A1_P502 1317 rule := USADA8; arch := v6;
1284 cccc01111000ddddaaaammmm0001nnnn 1318 | 1101x x10 - -
1285 # Note: In baseline class, bits(15:12) 1319 = *RdRnLsbWidth
1286 # is Ra (not Rd as column name 1320 pattern := cccc0111101wwwwwddddlllll101nnnn;
1287 # suggests). 1321 rule := SBFX; arch := v6T2;
1288 RegsNotPc (v6) 1322 | 1110x x00 - 1111
1289 | 1101x x10 - - = Binary2RegisterBitRangeNotRnIsPcBitfield Extract 1323 = *RdLsbWidth
1290 => Defs12To15CondsDontCareRdRnNotPcBitfi eldExtract 1324 pattern := cccc0111110mmmmmddddlllll0011111;
1291 Sbfx_Rule_154_A1_P308 1325 rule := BFC; arch := v6T2;
1292 cccc0111101wwwwwddddlllll101nnnn 1326 | " " - ~1111
1293 RegsNotPc (v6T2) 1327 = *RdRnLsbMsb
1294 | 1110x x00 - 1111 = Unary1RegisterBitRangeMsbGeLsb 1328 pattern := cccc0111110mmmmmddddlllll001nnnn;
1295 Bfc_17_A1_P46 1329 rule := BFI; arch := v6T2;
1296 cccc0111110mmmmmddddlllll0011111 1330 | 1111x x10 - -
1297 RegsNotPc (v6T2) 1331 = *RdLsbWidth
Karl 2012/12/14 20:14:19 Fixed to use *RdRnLsbWidth.
1298 | " " - ~1111 = Binary2RegisterBitRangeMsbGeLsb 1332 pattern := cccc0111111mmmmmddddlllll101nnnn;
1299 => Defs12To15CondsDontCareMsbGeLsb 1333 rule := UBFX; arch := v6T2;
1300 Bfi_Rule_18_A1_P48 1334 | 11111 111 - -
1301 cccc0111110mmmmmddddlllll001nnnn 1335 = baseline := PermanentlyUndefined;
1302 RegsNotPc (v6T2) 1336 pattern := cccc01111111iiiiiiiiiiii1111iiii;
1303 | 1111x x10 - - = Binary2RegisterBitRangeNotRnIsPcBitfield Extract 1337 # Note: the UDF mnemonic only applies
1304 => Defs12To15CondsDontCareRdRnNotPcBitfi eldExtract 1338 # when cond == 0b1110, but all
1305 Ubfx_Rule_236_A1_P466 1339 # encodings are permanently undefined.
1306 cccc0111111mmmmmddddlllll101nnnn 1340 rule := UDF;
1307 RegsNotPc (v6T2) 1341 | else: = Undefined # Note on table a5.4
1308 | 11111 111 - - = PermanentlyUndefined
1309 # Note: the UDF mnemonic only applies
1310 # when cond == 0b1110, but all
1311 # encodings are permanently undefined.
1312 Udf_Rule_A1
1313 cccc01111111iiiiiiiiiiii1111iiii
1314 | else: = Undefined # Note on page A5-21
1315 +-- 1342 +--
1316 1343
1317 # TODO(karl): Add uses to corresponding classes. 1344 # TODO(karl): Add uses to corresponding classes.
1318 # None of the instructions in the following table set NZCV flags. 1345 # None of the instructions in the following table set NZCV flags.
1319 # Some do set the APSR's sticky Q bit (for saturation) or the GE bits, 1346 # Some do set the APSR's sticky Q bit (for saturation) or the GE bits,
1320 # but we don't model them. 1347 # but we don't model them.
1321 +-- parallel_addition_and_subtraction_signed (See Section A5.4.1) 1348 +-- parallel_addition_and_subtraction_signed (See Section A5.4.1)
1322 | op1(21:20) op2(7:5) 1349 | op1(21:20) op2(7:5)
1323 | 01 000 = Binary3RegisterOpAltBNoCondUpdates 1350 | 01 000 = Binary3RegisterOpAltBNoCondUpdates
1324 => Defs12To15CondsDontCareRnRdRmNotPc 1351 => Defs12To15CondsDontCareRnRdRmNotPc
(...skipping 1834 matching lines...) Expand 10 before | Expand all | Expand 10 after
3159 rule := VLD3_single_3_element_structure_to_all_lanes; 3186 rule := VLD3_single_3_element_structure_to_all_lanes;
3160 | " " 0x11 = *VLSS4 3187 | " " 0x11 = *VLSS4
3161 pattern := 111101001d10nnnnddddss11aaaammmm; 3188 pattern := 111101001d10nnnnddddss11aaaammmm;
3162 rule := VLD4_single_4_element_structure_to_one_lane; 3189 rule := VLD4_single_4_element_structure_to_one_lane;
3163 | " " 1011 " 3190 | " " 1011 "
3164 | " " 1111 = *VLS4A 3191 | " " 1111 = *VLS4A
3165 pattern := 111101001d10nnnndddd1111sstammmm; 3192 pattern := 111101001d10nnnndddd1111sstammmm;
3166 rule := VLD4_single_4_element_structure_to_all_lanes; 3193 rule := VLD4_single_4_element_structure_to_all_lanes;
3167 | else: = Undefined 3194 | else: = Undefined
3168 +-- 3195 +--
OLDNEW
« no previous file with comments | « no previous file | src/trusted/validator_arm/baseline_classes.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698