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

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

Issue 12223041: Add uses to two ARM tables. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: Created 7 years, 10 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 2013 The Native Client Authors. All rights reserved. 2 * Copyright 2013 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 #include "native_client/src/trusted/validator_arm/gen/arm32_decode_baselines.h" 9 #include "native_client/src/trusted/validator_arm/gen/arm32_decode_baselines.h"
10 #include "native_client/src/trusted/validator_arm/inst_classes.h" 10 #include "native_client/src/trusted/validator_arm/inst_classes.h"
(...skipping 4260 matching lines...) Expand 10 before | Expand all | Expand 10 after
4271 // VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_0: 4271 // VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_0:
4272 // 4272 //
4273 // {D: D(22), 4273 // {D: D(22),
4274 // Q: Q(6), 4274 // Q: Q(6),
4275 // Vd: Vd(15:12), 4275 // Vd: Vd(15:12),
4276 // arch: ASIMD, 4276 // arch: ASIMD,
4277 // baseline: Vector1RegisterImmediate_MOV, 4277 // baseline: Vector1RegisterImmediate_MOV,
4278 // cmode: cmode(11:8), 4278 // cmode: cmode(11:8),
4279 // constraints: , 4279 // constraints: ,
4280 // d: D:Vd, 4280 // d: D:Vd,
4281 // defs: {},
4281 // false: false, 4282 // false: false,
4282 // fields: [i(24), 4283 // fields: [i(24),
4283 // D(22), 4284 // D(22),
4284 // imm3(18:16), 4285 // imm3(18:16),
4285 // Vd(15:12), 4286 // Vd(15:12),
4286 // cmode(11:8), 4287 // cmode(11:8),
4287 // Q(6), 4288 // Q(6),
4288 // op(5), 4289 // op(5),
4289 // imm4(3:0)], 4290 // imm4(3:0)],
4290 // generated_baseline: VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_cas e_0, 4291 // generated_baseline: VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_cas e_0,
4291 // i: i(24), 4292 // i: i(24),
4292 // imm3: imm3(18:16), 4293 // imm3: imm3(18:16),
4293 // imm4: imm4(3:0), 4294 // imm4: imm4(3:0),
4294 // imm64: AdvSIMDExpandImm(op, cmode, i:imm3:imm4), 4295 // imm64: AdvSIMDExpandImm(op, cmode, i:imm3:imm4),
4295 // op: op(5), 4296 // op: op(5),
4296 // pattern: 1111001m1d000mmmddddcccc0qp1mmmm, 4297 // pattern: 1111001m1d000mmmddddcccc0qp1mmmm,
4297 // regs: 1 4298 // regs: 1
4298 // if Q(6)=0 4299 // if Q(6)=0
4299 // else 2, 4300 // else 2,
4300 // rule: VMOV_immediate_A1, 4301 // rule: VMOV_immediate_A1,
4301 // safety: [op(5)=0 && 4302 // safety: [op(5)=0 &&
4302 // cmode(0)=1 && 4303 // cmode(0)=1 &&
4303 // cmode(3:2)=~11 => DECODER_ERROR, 4304 // cmode(3:2)=~11 => DECODER_ERROR,
4304 // op(5)=1 && 4305 // op(5)=1 &&
4305 // cmode(11:8)=~1110 => DECODER_ERROR, 4306 // cmode(11:8)=~1110 => DECODER_ERROR,
4306 // Q(6)=1 && 4307 // Q(6)=1 &&
4307 // Vd(0)=1 => UNDEFINED], 4308 // Vd(0)=1 => UNDEFINED],
4308 // single_register: false} 4309 // single_register: false,
4310 // uses: {}}
4311 RegisterList VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_0::
4312 defs(Instruction inst) const {
4313 UNREFERENCED_PARAMETER(inst); // To silence compiler.
4314 // defs: '{}'
4315 return RegisterList();
4316 }
4317
4309 SafetyLevel VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_0:: 4318 SafetyLevel VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_0::
4310 safety(Instruction inst) const { 4319 safety(Instruction inst) const {
4311 UNREFERENCED_PARAMETER(inst); // To silence compiler. 4320 UNREFERENCED_PARAMETER(inst); // To silence compiler.
4312 4321
4313 // inst(5)=0 && 4322 // inst(5)=0 &&
4314 // inst(11:8)(0)=1 && 4323 // inst(11:8)(0)=1 &&
4315 // inst(11:8)(3:2)=~11 => DECODER_ERROR 4324 // inst(11:8)(3:2)=~11 => DECODER_ERROR
4316 if (((inst.Bits() & 0x00000020) == 4325 if (((inst.Bits() & 0x00000020) ==
4317 0x00000000) && 4326 0x00000000) &&
4318 ((((inst.Bits() & 0x00000F00) >> 8) & 0x00000001) == 4327 ((((inst.Bits() & 0x00000F00) >> 8) & 0x00000001) ==
(...skipping 15 matching lines...) Expand all
4334 if (((inst.Bits() & 0x00000040) == 4343 if (((inst.Bits() & 0x00000040) ==
4335 0x00000040) && 4344 0x00000040) &&
4336 ((((inst.Bits() & 0x0000F000) >> 12) & 0x00000001) == 4345 ((((inst.Bits() & 0x0000F000) >> 12) & 0x00000001) ==
4337 0x00000001)) 4346 0x00000001))
4338 return UNDEFINED; 4347 return UNDEFINED;
4339 4348
4340 return MAY_BE_SAFE; 4349 return MAY_BE_SAFE;
4341 } 4350 }
4342 4351
4343 4352
4353 RegisterList VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_0::
4354 uses(Instruction inst) const {
4355 UNREFERENCED_PARAMETER(inst); // To silence compiler.
4356 // uses: '{}'
4357 return RegisterList();
4358 }
4359
4344 // VMOV_immediate_cccc11101d11iiiidddd101s0000iiii_case_0: 4360 // VMOV_immediate_cccc11101d11iiiidddd101s0000iiii_case_0:
4345 // 4361 //
4346 // {D: D(22), 4362 // {D: D(22),
4347 // Vd: Vd(15:12), 4363 // Vd: Vd(15:12),
4348 // advsimd: false, 4364 // advsimd: false,
4349 // arch: VFPv3, 4365 // arch: VFPv3,
4350 // baseline: CondVfpOp, 4366 // baseline: CondVfpOp,
4351 // cond: cond(31:28), 4367 // cond: cond(31:28),
4352 // constraints: , 4368 // constraints: ,
4353 // d: Vd:D 4369 // d: Vd:D
(...skipping 913 matching lines...) Expand 10 before | Expand all | Expand 10 after
5267 // VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_0: 5283 // VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_0:
5268 // 5284 //
5269 // {D: D(22), 5285 // {D: D(22),
5270 // Q: Q(6), 5286 // Q: Q(6),
5271 // Vd: Vd(15:12), 5287 // Vd: Vd(15:12),
5272 // arch: ASIMD, 5288 // arch: ASIMD,
5273 // baseline: Vector1RegisterImmediate_MVN, 5289 // baseline: Vector1RegisterImmediate_MVN,
5274 // cmode: cmode(11:8), 5290 // cmode: cmode(11:8),
5275 // constraints: , 5291 // constraints: ,
5276 // d: D:Vd, 5292 // d: D:Vd,
5293 // defs: {},
5277 // fields: [i(24), 5294 // fields: [i(24),
5278 // D(22), 5295 // D(22),
5279 // imm3(18:16), 5296 // imm3(18:16),
5280 // Vd(15:12), 5297 // Vd(15:12),
5281 // cmode(11:8), 5298 // cmode(11:8),
5282 // Q(6), 5299 // Q(6),
5283 // op(5), 5300 // op(5),
5284 // imm4(3:0)], 5301 // imm4(3:0)],
5285 // generated_baseline: VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_0 , 5302 // generated_baseline: VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_0 ,
5286 // i: i(24), 5303 // i: i(24),
5287 // imm3: imm3(18:16), 5304 // imm3: imm3(18:16),
5288 // imm4: imm4(3:0), 5305 // imm4: imm4(3:0),
5289 // imm64: AdvSIMDExpandImm(op, cmode, i:imm3:imm4), 5306 // imm64: AdvSIMDExpandImm(op, cmode, i:imm3:imm4),
5290 // op: op(5), 5307 // op: op(5),
5291 // pattern: 1111001i1d000mmmddddcccc0q11mmmm, 5308 // pattern: 1111001i1d000mmmddddcccc0q11mmmm,
5292 // regs: 1 5309 // regs: 1
5293 // if Q(6)=0 5310 // if Q(6)=0
5294 // else 2, 5311 // else 2,
5295 // rule: VMVN_immediate, 5312 // rule: VMVN_immediate,
5296 // safety: [(cmode(0)=1 && 5313 // safety: [(cmode(0)=1 &&
5297 // cmode(3:2)=~11) || 5314 // cmode(3:2)=~11) ||
5298 // cmode(3:1)=111 => DECODER_ERROR, 5315 // cmode(3:1)=111 => DECODER_ERROR,
5299 // Q(6)=1 && 5316 // Q(6)=1 &&
5300 // Vd(0)=1 => UNDEFINED]} 5317 // Vd(0)=1 => UNDEFINED],
5318 // uses: {}}
5319 RegisterList VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_0::
5320 defs(Instruction inst) const {
5321 UNREFERENCED_PARAMETER(inst); // To silence compiler.
5322 // defs: '{}'
5323 return RegisterList();
5324 }
5325
5301 SafetyLevel VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_0:: 5326 SafetyLevel VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_0::
5302 safety(Instruction inst) const { 5327 safety(Instruction inst) const {
5303 UNREFERENCED_PARAMETER(inst); // To silence compiler. 5328 UNREFERENCED_PARAMETER(inst); // To silence compiler.
5304 5329
5305 // (inst(11:8)(0)=1 && 5330 // (inst(11:8)(0)=1 &&
5306 // inst(11:8)(3:2)=~11) || 5331 // inst(11:8)(3:2)=~11) ||
5307 // inst(11:8)(3:1)=111 => DECODER_ERROR 5332 // inst(11:8)(3:1)=111 => DECODER_ERROR
5308 if (((((((inst.Bits() & 0x00000F00) >> 8) & 0x00000001) == 5333 if (((((((inst.Bits() & 0x00000F00) >> 8) & 0x00000001) ==
5309 0x00000001) && 5334 0x00000001) &&
5310 ((((inst.Bits() & 0x00000F00) >> 8) & 0x0000000C) != 5335 ((((inst.Bits() & 0x00000F00) >> 8) & 0x0000000C) !=
5311 0x0000000C))) || 5336 0x0000000C))) ||
5312 ((((inst.Bits() & 0x00000F00) >> 8) & 0x0000000E) == 5337 ((((inst.Bits() & 0x00000F00) >> 8) & 0x0000000E) ==
5313 0x0000000E)) 5338 0x0000000E))
5314 return DECODER_ERROR; 5339 return DECODER_ERROR;
5315 5340
5316 // inst(6)=1 && 5341 // inst(6)=1 &&
5317 // inst(15:12)(0)=1 => UNDEFINED 5342 // inst(15:12)(0)=1 => UNDEFINED
5318 if (((inst.Bits() & 0x00000040) == 5343 if (((inst.Bits() & 0x00000040) ==
5319 0x00000040) && 5344 0x00000040) &&
5320 ((((inst.Bits() & 0x0000F000) >> 12) & 0x00000001) == 5345 ((((inst.Bits() & 0x0000F000) >> 12) & 0x00000001) ==
5321 0x00000001)) 5346 0x00000001))
5322 return UNDEFINED; 5347 return UNDEFINED;
5323 5348
5324 return MAY_BE_SAFE; 5349 return MAY_BE_SAFE;
5325 } 5350 }
5326 5351
5327 5352
5353 RegisterList VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_0::
5354 uses(Instruction inst) const {
5355 UNREFERENCED_PARAMETER(inst); // To silence compiler.
5356 // uses: '{}'
5357 return RegisterList();
5358 }
5359
5328 // VMVN_register_111100111d11ss00dddd01011qm0mmmm_case_0: 5360 // VMVN_register_111100111d11ss00dddd01011qm0mmmm_case_0:
5329 // 5361 //
5330 // {D: D(22), 5362 // {D: D(22),
5331 // F: F(10), 5363 // F: F(10),
5332 // M: M(5), 5364 // M: M(5),
5333 // Q: Q(6), 5365 // Q: Q(6),
5334 // Vd: Vd(15:12), 5366 // Vd: Vd(15:12),
5335 // Vm: Vm(3:0), 5367 // Vm: Vm(3:0),
5336 // arch: ASIMD, 5368 // arch: ASIMD,
5337 // baseline: Vector2RegisterMiscellaneous_V8, 5369 // baseline: Vector2RegisterMiscellaneous_V8,
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after
5820 // VORR_immediate_1111001i1d000mmmddddcccc0q01mmmm_case_0: 5852 // VORR_immediate_1111001i1d000mmmddddcccc0q01mmmm_case_0:
5821 // 5853 //
5822 // {D: D(22), 5854 // {D: D(22),
5823 // Q: Q(6), 5855 // Q: Q(6),
5824 // Vd: Vd(15:12), 5856 // Vd: Vd(15:12),
5825 // arch: ASIMD, 5857 // arch: ASIMD,
5826 // baseline: Vector1RegisterImmediate_BIT, 5858 // baseline: Vector1RegisterImmediate_BIT,
5827 // cmode: cmode(11:8), 5859 // cmode: cmode(11:8),
5828 // constraints: , 5860 // constraints: ,
5829 // d: D:Vd, 5861 // d: D:Vd,
5862 // defs: {},
5830 // fields: [i(24), 5863 // fields: [i(24),
5831 // D(22), 5864 // D(22),
5832 // imm3(18:16), 5865 // imm3(18:16),
5833 // Vd(15:12), 5866 // Vd(15:12),
5834 // cmode(11:8), 5867 // cmode(11:8),
5835 // Q(6), 5868 // Q(6),
5836 // op(5), 5869 // op(5),
5837 // imm4(3:0)], 5870 // imm4(3:0)],
5838 // generated_baseline: VORR_immediate_1111001i1d000mmmddddcccc0q01mmmm_case_0 , 5871 // generated_baseline: VORR_immediate_1111001i1d000mmmddddcccc0q01mmmm_case_0 ,
5839 // i: i(24), 5872 // i: i(24),
5840 // imm3: imm3(18:16), 5873 // imm3: imm3(18:16),
5841 // imm4: imm4(3:0), 5874 // imm4: imm4(3:0),
5842 // imm64: AdvSIMDExpandImm(op, cmode, i:imm3:imm4), 5875 // imm64: AdvSIMDExpandImm(op, cmode, i:imm3:imm4),
5843 // op: op(5), 5876 // op: op(5),
5844 // pattern: 1111001i1d000mmmddddcccc0q01mmmm, 5877 // pattern: 1111001i1d000mmmddddcccc0q01mmmm,
5845 // regs: 1 5878 // regs: 1
5846 // if Q(6)=0 5879 // if Q(6)=0
5847 // else 2, 5880 // else 2,
5848 // rule: VORR_immediate, 5881 // rule: VORR_immediate,
5849 // safety: [cmode(0)=0 || 5882 // safety: [cmode(0)=0 ||
5850 // cmode(3:2)=11 => DECODER_ERROR, 5883 // cmode(3:2)=11 => DECODER_ERROR,
5851 // Q(6)=1 && 5884 // Q(6)=1 &&
5852 // Vd(0)=1 => UNDEFINED]} 5885 // Vd(0)=1 => UNDEFINED],
5886 // uses: {}}
5887 RegisterList VORR_immediate_1111001i1d000mmmddddcccc0q01mmmm_case_0::
5888 defs(Instruction inst) const {
5889 UNREFERENCED_PARAMETER(inst); // To silence compiler.
5890 // defs: '{}'
5891 return RegisterList();
5892 }
5893
5853 SafetyLevel VORR_immediate_1111001i1d000mmmddddcccc0q01mmmm_case_0:: 5894 SafetyLevel VORR_immediate_1111001i1d000mmmddddcccc0q01mmmm_case_0::
5854 safety(Instruction inst) const { 5895 safety(Instruction inst) const {
5855 UNREFERENCED_PARAMETER(inst); // To silence compiler. 5896 UNREFERENCED_PARAMETER(inst); // To silence compiler.
5856 5897
5857 // inst(11:8)(0)=0 || 5898 // inst(11:8)(0)=0 ||
5858 // inst(11:8)(3:2)=11 => DECODER_ERROR 5899 // inst(11:8)(3:2)=11 => DECODER_ERROR
5859 if (((((inst.Bits() & 0x00000F00) >> 8) & 0x00000001) == 5900 if (((((inst.Bits() & 0x00000F00) >> 8) & 0x00000001) ==
5860 0x00000000) || 5901 0x00000000) ||
5861 ((((inst.Bits() & 0x00000F00) >> 8) & 0x0000000C) == 5902 ((((inst.Bits() & 0x00000F00) >> 8) & 0x0000000C) ==
5862 0x0000000C)) 5903 0x0000000C))
5863 return DECODER_ERROR; 5904 return DECODER_ERROR;
5864 5905
5865 // inst(6)=1 && 5906 // inst(6)=1 &&
5866 // inst(15:12)(0)=1 => UNDEFINED 5907 // inst(15:12)(0)=1 => UNDEFINED
5867 if (((inst.Bits() & 0x00000040) == 5908 if (((inst.Bits() & 0x00000040) ==
5868 0x00000040) && 5909 0x00000040) &&
5869 ((((inst.Bits() & 0x0000F000) >> 12) & 0x00000001) == 5910 ((((inst.Bits() & 0x0000F000) >> 12) & 0x00000001) ==
5870 0x00000001)) 5911 0x00000001))
5871 return UNDEFINED; 5912 return UNDEFINED;
5872 5913
5873 return MAY_BE_SAFE; 5914 return MAY_BE_SAFE;
5874 } 5915 }
5875 5916
5876 5917
5918 RegisterList VORR_immediate_1111001i1d000mmmddddcccc0q01mmmm_case_0::
5919 uses(Instruction inst) const {
5920 UNREFERENCED_PARAMETER(inst); // To silence compiler.
5921 // uses: '{}'
5922 return RegisterList();
5923 }
5924
5877 // VORR_register_or_VMOV_register_A1_111100100d10nnnndddd0001nqm1mmmm_case_0: 5925 // VORR_register_or_VMOV_register_A1_111100100d10nnnndddd0001nqm1mmmm_case_0:
5878 // 5926 //
5879 // {D: D(22), 5927 // {D: D(22),
5880 // M: M(5), 5928 // M: M(5),
5881 // N: N(7), 5929 // N: N(7),
5882 // Q: Q(6), 5930 // Q: Q(6),
5883 // U: U(24), 5931 // U: U(24),
5884 // Vd: Vd(15:12), 5932 // Vd: Vd(15:12),
5885 // Vm: Vm(3:0), 5933 // Vm: Vm(3:0),
5886 // Vn: Vn(19:16), 5934 // Vn: Vn(19:16),
(...skipping 7726 matching lines...) Expand 10 before | Expand all | Expand 10 after
13613 13661
13614 13662
13615 RegisterList YIELD_cccc0011001000001111000000000001_case_0:: 13663 RegisterList YIELD_cccc0011001000001111000000000001_case_0::
13616 uses(Instruction inst) const { 13664 uses(Instruction inst) const {
13617 UNREFERENCED_PARAMETER(inst); // To silence compiler. 13665 UNREFERENCED_PARAMETER(inst); // To silence compiler.
13618 // uses: '{}' 13666 // uses: '{}'
13619 return RegisterList(); 13667 return RegisterList();
13620 } 13668 }
13621 13669
13622 } // namespace nacl_arm_dec 13670 } // namespace nacl_arm_dec
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698