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

Side by Side Diff: src/trusted/validator_arm/gen/arm32_decode.cc

Issue 10949006: Change table data_processing_immediate to use the new notation. Also (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: Created 8 years, 3 months 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
OLDNEW
1 /* 1 /*
2 * Copyright 2012 The Native Client Authors. All rights reserved. 2 * Copyright 2012 The Native Client Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can 3 * Use of this source code is governed by a BSD-style license that can
4 * be found in the LICENSE file. 4 * be found in the LICENSE file.
5 */ 5 */
6 6
7 // DO NOT EDIT: GENERATED CODE 7 // DO NOT EDIT: GENERATED CODE
8 8
9 9
10 #include "native_client/src/trusted/validator_arm/gen/arm32_decode.h" 10 #include "native_client/src/trusted/validator_arm/gen/arm32_decode.h"
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 // Catch any attempt to fall though ... 301 // Catch any attempt to fall though ...
302 return not_implemented_; 302 return not_implemented_;
303 } 303 }
304 304
305 // Implementation of table: data_processing_immediate. 305 // Implementation of table: data_processing_immediate.
306 // Specified by: See Section A5.2.3 306 // Specified by: See Section A5.2.3
307 const ClassDecoder& Arm32DecoderState::decode_data_processing_immediate( 307 const ClassDecoder& Arm32DecoderState::decode_data_processing_immediate(
308 const Instruction inst) const 308 const Instruction inst) const
309 { 309 {
310 UNREFERENCED_PARAMETER(inst); 310 UNREFERENCED_PARAMETER(inst);
311 if ((inst.Bits() & 0x01F00000) == 0x00400000 /* op(24:20)=00100 */ &&
312 (inst.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16)=1111 */) {
313 return Defs12To15_instance_;
314 }
315
316 if ((inst.Bits() & 0x01F00000) == 0x00500000 /* op(24:20)=00101 */ &&
317 (inst.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16)=1111 */ &&
318 (inst.Bits() & 0x0000F000) == 0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxx x1111xxxxxxxxxxxx */) {
319 return Forbidden_instance_;
320 }
321
322 if ((inst.Bits() & 0x01F00000) == 0x00800000 /* op(24:20)=01000 */ &&
323 (inst.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16)=1111 */) {
324 return Defs12To15_instance_;
325 }
326
327 if ((inst.Bits() & 0x01F00000) == 0x00900000 /* op(24:20)=01001 */ &&
328 (inst.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16)=1111 */ &&
329 (inst.Bits() & 0x0000F000) == 0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxx x1111xxxxxxxxxxxx */) {
330 return Forbidden_instance_;
331 }
332
333 if ((inst.Bits() & 0x01F00000) == 0x01100000 /* op(24:20)=10001 */ && 311 if ((inst.Bits() & 0x01F00000) == 0x01100000 /* op(24:20)=10001 */ &&
334 (inst.Bits() & 0x0000F000) == 0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxx x0000xxxxxxxxxxxx */) { 312 (inst.Bits() & 0x0000F000) == 0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxx x0000xxxxxxxxxxxx */) {
335 return TestIfAddressMasked_instance_; 313 return TestIfAddressMasked_instance_;
336 } 314 }
337 315
338 if ((inst.Bits() & 0x01F00000) == 0x01500000 /* op(24:20)=10101 */ && 316 if ((inst.Bits() & 0x01F00000) == 0x01500000 /* op(24:20)=10101 */ &&
339 (inst.Bits() & 0x0000F000) == 0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxx x0000xxxxxxxxxxxx */) { 317 (inst.Bits() & 0x0000F000) == 0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxx x0000xxxxxxxxxxxx */) {
340 return DontCareInst_instance_; 318 return DontCareInst_instance_;
341 } 319 }
342 320
343 if ((inst.Bits() & 0x01B00000) == 0x01300000 /* op(24:20)=10x11 */ && 321 if ((inst.Bits() & 0x01B00000) == 0x01300000 /* op(24:20)=10x11 */ &&
344 (inst.Bits() & 0x0000F000) == 0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxx x0000xxxxxxxxxxxx */) { 322 (inst.Bits() & 0x0000F000) == 0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxx x0000xxxxxxxxxxxx */) {
345 return DontCareInst_instance_; 323 return DontCareInst_instance_;
346 } 324 }
347 325
348 if ((inst.Bits() & 0x01E00000) == 0x00400000 /* op(24:20)=0010x */ &&
349 (inst.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16)=~1111 */) {
350 return Defs12To15_instance_;
351 }
352
353 if ((inst.Bits() & 0x01E00000) == 0x00800000 /* op(24:20)=0100x */ &&
354 (inst.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16)=~1111 */) {
355 return Defs12To15_instance_;
356 }
357
358 if ((inst.Bits() & 0x01E00000) == 0x00A00000 /* op(24:20)=0101x */) {
359 return Defs12To15_instance_;
360 }
361
362 if ((inst.Bits() & 0x01E00000) == 0x00C00000 /* op(24:20)=0110x */) {
363 return Defs12To15_instance_;
364 }
365
366 if ((inst.Bits() & 0x01E00000) == 0x01800000 /* op(24:20)=1100x */) { 326 if ((inst.Bits() & 0x01E00000) == 0x01800000 /* op(24:20)=1100x */) {
367 return Defs12To15_instance_; 327 return Defs12To15_instance_;
368 } 328 }
369 329
370 if ((inst.Bits() & 0x01E00000) == 0x01C00000 /* op(24:20)=1110x */) { 330 if ((inst.Bits() & 0x01E00000) == 0x01C00000 /* op(24:20)=1110x */) {
371 return MaskAddress_instance_; 331 return MaskAddress_instance_;
372 } 332 }
373 333
374 if ((inst.Bits() & 0x01600000) == 0x00600000 /* op(24:20)=0x11x */) {
375 return Defs12To15_instance_;
376 }
377
378 if ((inst.Bits() & 0x01A00000) == 0x01A00000 /* op(24:20)=11x1x */ && 334 if ((inst.Bits() & 0x01A00000) == 0x01A00000 /* op(24:20)=11x1x */ &&
379 (inst.Bits() & 0x000F0000) == 0x00000000 /* $pattern(31:0)=xxxxxxxxxxxx000 0xxxxxxxxxxxxxxxx */) { 335 (inst.Bits() & 0x000F0000) == 0x00000000 /* $pattern(31:0)=xxxxxxxxxxxx000 0xxxxxxxxxxxxxxxx */) {
380 return Defs12To15_instance_; 336 return Defs12To15_instance_;
381 } 337 }
382 338
383 if ((inst.Bits() & 0x01C00000) == 0x00000000 /* op(24:20)=000xx */) { 339 if ((inst.Bits() & 0x01000000) == 0x00000000 /* op(24:20)=0xxxx */) {
384 return Defs12To15_instance_; 340 return Defs12To15_instance_;
385 } 341 }
386 342
387 // Catch any attempt to fall though ... 343 // Catch any attempt to fall though ...
388 return not_implemented_; 344 return not_implemented_;
389 } 345 }
390 346
391 // Implementation of table: data_processing_register. 347 // Implementation of table: data_processing_register.
392 // Specified by: See Section A5.2.1 348 // Specified by: See Section A5.2.1
393 const ClassDecoder& Arm32DecoderState::decode_data_processing_register( 349 const ClassDecoder& Arm32DecoderState::decode_data_processing_register(
(...skipping 1206 matching lines...) Expand 10 before | Expand all | Expand 10 after
1600 1556
1601 // Catch any attempt to fall though ... 1557 // Catch any attempt to fall though ...
1602 return not_implemented_; 1558 return not_implemented_;
1603 } 1559 }
1604 1560
1605 const ClassDecoder& Arm32DecoderState::decode(const Instruction inst) const { 1561 const ClassDecoder& Arm32DecoderState::decode(const Instruction inst) const {
1606 return decode_ARMv7(inst); 1562 return decode_ARMv7(inst);
1607 } 1563 }
1608 1564
1609 } // namespace nacl_arm_dec 1565 } // namespace nacl_arm_dec
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698