| OLD | NEW |
| 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/inst_classes.h" | 9 #include "native_client/src/trusted/validator_arm/inst_classes.h" |
| 10 #include "native_client/src/trusted/validator_arm/gen/arm32_decode_actuals.h" | 10 #include "native_client/src/trusted/validator_arm/gen/arm32_decode_actuals.h" |
| (...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 RegisterList Actual_VADD_integer_111100100dssnnnndddd1000nqm0mmmm_case_1:: | 360 RegisterList Actual_VADD_integer_111100100dssnnnndddd1000nqm0mmmm_case_1:: |
| 361 uses(Instruction inst) const { | 361 uses(Instruction inst) const { |
| 362 UNREFERENCED_PARAMETER(inst); // To silence compiler. | 362 UNREFERENCED_PARAMETER(inst); // To silence compiler. |
| 363 // uses: '{}' | 363 // uses: '{}' |
| 364 return RegisterList(); | 364 return RegisterList(); |
| 365 } | 365 } |
| 366 | 366 |
| 367 // Actual_VBIC_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1 | 367 // Actual_VBIC_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1 |
| 368 // | 368 // |
| 369 // Actual: | 369 // Actual: |
| 370 // {safety: [inst(11:8)(0)=0 || | 370 // {defs: {}, |
| 371 // safety: [inst(11:8)(0)=0 || |
| 371 // inst(11:8)(3:2)=11 => DECODER_ERROR, | 372 // inst(11:8)(3:2)=11 => DECODER_ERROR, |
| 372 // inst(6)=1 && | 373 // inst(6)=1 && |
| 373 // inst(15:12)(0)=1 => UNDEFINED]} | 374 // inst(15:12)(0)=1 => UNDEFINED], |
| 375 // uses: {}} |
| 376 |
| 377 RegisterList Actual_VBIC_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1:: |
| 378 defs(Instruction inst) const { |
| 379 UNREFERENCED_PARAMETER(inst); // To silence compiler. |
| 380 // defs: '{}' |
| 381 return RegisterList(); |
| 382 } |
| 374 | 383 |
| 375 SafetyLevel Actual_VBIC_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1:: | 384 SafetyLevel Actual_VBIC_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1:: |
| 376 safety(Instruction inst) const { | 385 safety(Instruction inst) const { |
| 377 UNREFERENCED_PARAMETER(inst); // To silence compiler. | 386 UNREFERENCED_PARAMETER(inst); // To silence compiler. |
| 378 | 387 |
| 379 // inst(11:8)(0)=0 || | 388 // inst(11:8)(0)=0 || |
| 380 // inst(11:8)(3:2)=11 => DECODER_ERROR | 389 // inst(11:8)(3:2)=11 => DECODER_ERROR |
| 381 if (((((inst.Bits() & 0x00000F00) >> 8) & 0x00000001) == | 390 if (((((inst.Bits() & 0x00000F00) >> 8) & 0x00000001) == |
| 382 0x00000000) || | 391 0x00000000) || |
| 383 ((((inst.Bits() & 0x00000F00) >> 8) & 0x0000000C) == | 392 ((((inst.Bits() & 0x00000F00) >> 8) & 0x0000000C) == |
| 384 0x0000000C)) | 393 0x0000000C)) |
| 385 return DECODER_ERROR; | 394 return DECODER_ERROR; |
| 386 | 395 |
| 387 // inst(6)=1 && | 396 // inst(6)=1 && |
| 388 // inst(15:12)(0)=1 => UNDEFINED | 397 // inst(15:12)(0)=1 => UNDEFINED |
| 389 if (((inst.Bits() & 0x00000040) == | 398 if (((inst.Bits() & 0x00000040) == |
| 390 0x00000040) && | 399 0x00000040) && |
| 391 ((((inst.Bits() & 0x0000F000) >> 12) & 0x00000001) == | 400 ((((inst.Bits() & 0x0000F000) >> 12) & 0x00000001) == |
| 392 0x00000001)) | 401 0x00000001)) |
| 393 return UNDEFINED; | 402 return UNDEFINED; |
| 394 | 403 |
| 395 return MAY_BE_SAFE; | 404 return MAY_BE_SAFE; |
| 396 } | 405 } |
| 397 | 406 |
| 398 | 407 |
| 408 RegisterList Actual_VBIC_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1:: |
| 409 uses(Instruction inst) const { |
| 410 UNREFERENCED_PARAMETER(inst); // To silence compiler. |
| 411 // uses: '{}' |
| 412 return RegisterList(); |
| 413 } |
| 414 |
| 399 // Actual_VCNT_111100111d11ss00dddd01010qm0mmmm_case_1 | 415 // Actual_VCNT_111100111d11ss00dddd01010qm0mmmm_case_1 |
| 400 // | 416 // |
| 401 // Actual: | 417 // Actual: |
| 402 // {defs: {}, | 418 // {defs: {}, |
| 403 // safety: [inst(19:18)=~00 => UNDEFINED, | 419 // safety: [inst(19:18)=~00 => UNDEFINED, |
| 404 // inst(6)=1 && | 420 // inst(6)=1 && |
| 405 // (inst(15:12)(0)=1 || | 421 // (inst(15:12)(0)=1 || |
| 406 // inst(3:0)(0)=1) => UNDEFINED], | 422 // inst(3:0)(0)=1) => UNDEFINED], |
| 407 // uses: {}} | 423 // uses: {}} |
| 408 | 424 |
| (...skipping 2582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2991 0x00100000 | 3007 0x00100000 |
| 2992 ? RegisterList() | 3008 ? RegisterList() |
| 2993 : RegisterList(). | 3009 : RegisterList(). |
| 2994 Add(Register(((inst.Bits() & 0x0000F000) >> 12))). | 3010 Add(Register(((inst.Bits() & 0x0000F000) >> 12))). |
| 2995 Add(Register(((inst.Bits() & 0x000F0000) >> 16)))); | 3011 Add(Register(((inst.Bits() & 0x000F0000) >> 16)))); |
| 2996 } | 3012 } |
| 2997 | 3013 |
| 2998 // Actual_VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_1 | 3014 // Actual_VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_1 |
| 2999 // | 3015 // |
| 3000 // Actual: | 3016 // Actual: |
| 3001 // {safety: [inst(5)=0 && | 3017 // {defs: {}, |
| 3018 // safety: [inst(5)=0 && |
| 3002 // inst(11:8)(0)=1 && | 3019 // inst(11:8)(0)=1 && |
| 3003 // inst(11:8)(3:2)=~11 => DECODER_ERROR, | 3020 // inst(11:8)(3:2)=~11 => DECODER_ERROR, |
| 3004 // inst(5)=1 && | 3021 // inst(5)=1 && |
| 3005 // inst(11:8)=~1110 => DECODER_ERROR, | 3022 // inst(11:8)=~1110 => DECODER_ERROR, |
| 3006 // inst(6)=1 && | 3023 // inst(6)=1 && |
| 3007 // inst(15:12)(0)=1 => UNDEFINED]} | 3024 // inst(15:12)(0)=1 => UNDEFINED], |
| 3025 // uses: {}} |
| 3026 |
| 3027 RegisterList Actual_VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_1:: |
| 3028 defs(Instruction inst) const { |
| 3029 UNREFERENCED_PARAMETER(inst); // To silence compiler. |
| 3030 // defs: '{}' |
| 3031 return RegisterList(); |
| 3032 } |
| 3008 | 3033 |
| 3009 SafetyLevel Actual_VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_1:: | 3034 SafetyLevel Actual_VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_1:: |
| 3010 safety(Instruction inst) const { | 3035 safety(Instruction inst) const { |
| 3011 UNREFERENCED_PARAMETER(inst); // To silence compiler. | 3036 UNREFERENCED_PARAMETER(inst); // To silence compiler. |
| 3012 | 3037 |
| 3013 // inst(5)=0 && | 3038 // inst(5)=0 && |
| 3014 // inst(11:8)(0)=1 && | 3039 // inst(11:8)(0)=1 && |
| 3015 // inst(11:8)(3:2)=~11 => DECODER_ERROR | 3040 // inst(11:8)(3:2)=~11 => DECODER_ERROR |
| 3016 if (((inst.Bits() & 0x00000020) == | 3041 if (((inst.Bits() & 0x00000020) == |
| 3017 0x00000000) && | 3042 0x00000000) && |
| (...skipping 16 matching lines...) Expand all Loading... |
| 3034 if (((inst.Bits() & 0x00000040) == | 3059 if (((inst.Bits() & 0x00000040) == |
| 3035 0x00000040) && | 3060 0x00000040) && |
| 3036 ((((inst.Bits() & 0x0000F000) >> 12) & 0x00000001) == | 3061 ((((inst.Bits() & 0x0000F000) >> 12) & 0x00000001) == |
| 3037 0x00000001)) | 3062 0x00000001)) |
| 3038 return UNDEFINED; | 3063 return UNDEFINED; |
| 3039 | 3064 |
| 3040 return MAY_BE_SAFE; | 3065 return MAY_BE_SAFE; |
| 3041 } | 3066 } |
| 3042 | 3067 |
| 3043 | 3068 |
| 3069 RegisterList Actual_VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_1:: |
| 3070 uses(Instruction inst) const { |
| 3071 UNREFERENCED_PARAMETER(inst); // To silence compiler. |
| 3072 // uses: '{}' |
| 3073 return RegisterList(); |
| 3074 } |
| 3075 |
| 3044 // Actual_VMRS_cccc111011110001tttt101000010000_case_1 | 3076 // Actual_VMRS_cccc111011110001tttt101000010000_case_1 |
| 3045 // | 3077 // |
| 3046 // Actual: | 3078 // Actual: |
| 3047 // {defs: {16 | 3079 // {defs: {16 |
| 3048 // if 15 == | 3080 // if 15 == |
| 3049 // inst(15:12) | 3081 // inst(15:12) |
| 3050 // else inst(15:12)}} | 3082 // else inst(15:12)}} |
| 3051 | 3083 |
| 3052 RegisterList Actual_VMRS_cccc111011110001tttt101000010000_case_1:: | 3084 RegisterList Actual_VMRS_cccc111011110001tttt101000010000_case_1:: |
| 3053 defs(Instruction inst) const { | 3085 defs(Instruction inst) const { |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3204 RegisterList Actual_VMUL_polynomial_A1_1111001u0dssnnnndddd1001nqm1mmmm_case_1:: | 3236 RegisterList Actual_VMUL_polynomial_A1_1111001u0dssnnnndddd1001nqm1mmmm_case_1:: |
| 3205 uses(Instruction inst) const { | 3237 uses(Instruction inst) const { |
| 3206 UNREFERENCED_PARAMETER(inst); // To silence compiler. | 3238 UNREFERENCED_PARAMETER(inst); // To silence compiler. |
| 3207 // uses: '{}' | 3239 // uses: '{}' |
| 3208 return RegisterList(); | 3240 return RegisterList(); |
| 3209 } | 3241 } |
| 3210 | 3242 |
| 3211 // Actual_VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1 | 3243 // Actual_VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1 |
| 3212 // | 3244 // |
| 3213 // Actual: | 3245 // Actual: |
| 3214 // {safety: [(inst(11:8)(0)=1 && | 3246 // {defs: {}, |
| 3247 // safety: [(inst(11:8)(0)=1 && |
| 3215 // inst(11:8)(3:2)=~11) || | 3248 // inst(11:8)(3:2)=~11) || |
| 3216 // inst(11:8)(3:1)=111 => DECODER_ERROR, | 3249 // inst(11:8)(3:1)=111 => DECODER_ERROR, |
| 3217 // inst(6)=1 && | 3250 // inst(6)=1 && |
| 3218 // inst(15:12)(0)=1 => UNDEFINED]} | 3251 // inst(15:12)(0)=1 => UNDEFINED], |
| 3252 // uses: {}} |
| 3253 |
| 3254 RegisterList Actual_VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1:: |
| 3255 defs(Instruction inst) const { |
| 3256 UNREFERENCED_PARAMETER(inst); // To silence compiler. |
| 3257 // defs: '{}' |
| 3258 return RegisterList(); |
| 3259 } |
| 3219 | 3260 |
| 3220 SafetyLevel Actual_VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1:: | 3261 SafetyLevel Actual_VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1:: |
| 3221 safety(Instruction inst) const { | 3262 safety(Instruction inst) const { |
| 3222 UNREFERENCED_PARAMETER(inst); // To silence compiler. | 3263 UNREFERENCED_PARAMETER(inst); // To silence compiler. |
| 3223 | 3264 |
| 3224 // (inst(11:8)(0)=1 && | 3265 // (inst(11:8)(0)=1 && |
| 3225 // inst(11:8)(3:2)=~11) || | 3266 // inst(11:8)(3:2)=~11) || |
| 3226 // inst(11:8)(3:1)=111 => DECODER_ERROR | 3267 // inst(11:8)(3:1)=111 => DECODER_ERROR |
| 3227 if (((((((inst.Bits() & 0x00000F00) >> 8) & 0x00000001) == | 3268 if (((((((inst.Bits() & 0x00000F00) >> 8) & 0x00000001) == |
| 3228 0x00000001) && | 3269 0x00000001) && |
| 3229 ((((inst.Bits() & 0x00000F00) >> 8) & 0x0000000C) != | 3270 ((((inst.Bits() & 0x00000F00) >> 8) & 0x0000000C) != |
| 3230 0x0000000C))) || | 3271 0x0000000C))) || |
| 3231 ((((inst.Bits() & 0x00000F00) >> 8) & 0x0000000E) == | 3272 ((((inst.Bits() & 0x00000F00) >> 8) & 0x0000000E) == |
| 3232 0x0000000E)) | 3273 0x0000000E)) |
| 3233 return DECODER_ERROR; | 3274 return DECODER_ERROR; |
| 3234 | 3275 |
| 3235 // inst(6)=1 && | 3276 // inst(6)=1 && |
| 3236 // inst(15:12)(0)=1 => UNDEFINED | 3277 // inst(15:12)(0)=1 => UNDEFINED |
| 3237 if (((inst.Bits() & 0x00000040) == | 3278 if (((inst.Bits() & 0x00000040) == |
| 3238 0x00000040) && | 3279 0x00000040) && |
| 3239 ((((inst.Bits() & 0x0000F000) >> 12) & 0x00000001) == | 3280 ((((inst.Bits() & 0x0000F000) >> 12) & 0x00000001) == |
| 3240 0x00000001)) | 3281 0x00000001)) |
| 3241 return UNDEFINED; | 3282 return UNDEFINED; |
| 3242 | 3283 |
| 3243 return MAY_BE_SAFE; | 3284 return MAY_BE_SAFE; |
| 3244 } | 3285 } |
| 3245 | 3286 |
| 3246 | 3287 |
| 3288 RegisterList Actual_VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1:: |
| 3289 uses(Instruction inst) const { |
| 3290 UNREFERENCED_PARAMETER(inst); // To silence compiler. |
| 3291 // uses: '{}' |
| 3292 return RegisterList(); |
| 3293 } |
| 3294 |
| 3247 // Actual_VPADD_floating_point_111100110d0snnnndddd1101nqm0mmmm_case_1 | 3295 // Actual_VPADD_floating_point_111100110d0snnnndddd1101nqm0mmmm_case_1 |
| 3248 // | 3296 // |
| 3249 // Actual: | 3297 // Actual: |
| 3250 // {defs: {}, | 3298 // {defs: {}, |
| 3251 // safety: [inst(21:20)(0)=1 || | 3299 // safety: [inst(21:20)(0)=1 || |
| 3252 // inst(6)=1 => UNDEFINED], | 3300 // inst(6)=1 => UNDEFINED], |
| 3253 // uses: {}} | 3301 // uses: {}} |
| 3254 | 3302 |
| 3255 RegisterList Actual_VPADD_floating_point_111100110d0snnnndddd1101nqm0mmmm_case_1
:: | 3303 RegisterList Actual_VPADD_floating_point_111100110d0snnnndddd1101nqm0mmmm_case_1
:: |
| 3256 defs(Instruction inst) const { | 3304 defs(Instruction inst) const { |
| (...skipping 1131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4388 | 4436 |
| 4389 | 4437 |
| 4390 RegisterList Actual_VUZP_111100111d11ss10dddd00010qm0mmmm_case_1:: | 4438 RegisterList Actual_VUZP_111100111d11ss10dddd00010qm0mmmm_case_1:: |
| 4391 uses(Instruction inst) const { | 4439 uses(Instruction inst) const { |
| 4392 UNREFERENCED_PARAMETER(inst); // To silence compiler. | 4440 UNREFERENCED_PARAMETER(inst); // To silence compiler. |
| 4393 // uses: '{}' | 4441 // uses: '{}' |
| 4394 return RegisterList(); | 4442 return RegisterList(); |
| 4395 } | 4443 } |
| 4396 | 4444 |
| 4397 } // namespace nacl_arm_dec | 4445 } // namespace nacl_arm_dec |
| OLD | NEW |