1// Copyright (C) 2023 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14// 15 16package { 17 default_applicable_licenses: ["Android-Apache-2.0"], 18} 19 20cc_library_headers { 21 name: "libberberis_interpreter_riscv64_headers", 22 defaults: ["berberis_all_hosts_defaults"], 23 host_supported: true, 24 export_include_dirs: ["include"], 25} 26 27cc_library_static { 28 name: "libberberis_interpreter_riscv64", 29 defaults: [ 30 "berberis_all_hosts_defaults_64", 31 "berberis_memory_region_reservation_defaults", 32 ], 33 host_supported: true, 34 header_libs: [ 35 "libberberis_base_headers", 36 "libberberis_decoder_riscv64_headers", 37 "libberberis_guest_state_riscv64_headers", 38 "libberberis_interpreter_riscv64_headers", 39 "libberberis_kernel_api_headers", 40 "libberberis_runtime_primitives_headers", 41 "libberberis_intrinsics_riscv64_headers", 42 ], 43 export_header_lib_headers: ["libberberis_interpreter_riscv64_headers"], 44 arch: { 45 x86_64: { 46 cflags: [ 47 "-DBERBERIS_RISCV64_INTERPRETER_SEPARATE_INSTANTIATION_OF_VECTOR_OPERATIONS", 48 "-mssse3", 49 ], 50 srcs: [ 51 "riscv64/faulty_memory_accesses_x86_64.cc", 52 "riscv64/interpreter-VLoadIndexedArgs.cc", 53 "riscv64/interpreter-VLoadStrideArgs.cc", 54 "riscv64/interpreter-VLoadUnitStrideArgs.cc", 55 "riscv64/interpreter-VOpFVfArgs.cc", 56 "riscv64/interpreter-VOpFVvArgs.cc", 57 "riscv64/interpreter-VOpIViArgs.cc", 58 "riscv64/interpreter-VOpIVvArgs.cc", 59 "riscv64/interpreter-VOpIVxArgs.cc", 60 "riscv64/interpreter-VOpMVvArgs.cc", 61 "riscv64/interpreter-VOpMVxArgs.cc", 62 "riscv64/interpreter-VStoreIndexedArgs.cc", 63 "riscv64/interpreter-VStoreStrideArgs.cc", 64 "riscv64/interpreter-VStoreUnitStrideArgs.cc", 65 ], 66 }, 67 arm64: { 68 srcs: [ 69 "riscv64/faulty_memory_accesses_arm64.cc", 70 ], 71 }, 72 }, 73 srcs: [ 74 "riscv64/interpreter-main.cc", 75 ], 76} 77 78cc_test_library { 79 name: "libberberis_interpreter_riscv64_unit_tests", 80 defaults: ["berberis_test_library_defaults_64"], 81 srcs: [ 82 "riscv64/faulty_memory_accesses_test.cc", 83 "riscv64/interpreter_test.cc", 84 ], 85 header_libs: [ 86 "berberis_test_utils_headers", 87 "libberberis_base_headers", 88 "libberberis_guest_state_riscv64_headers", 89 "libberberis_guest_os_primitives_headers", 90 "libberberis_interpreter_riscv64_headers", 91 "libberberis_intrinsics_riscv64_headers", 92 "libberberis_kernel_api_headers", 93 ], 94} 95 96cc_test { 97 name: "berberis_interpreter_riscv64_to_arm64_insn_tests_static", 98 defaults: ["berberis_all_hosts_defaults_64"], 99 static_libs: [ 100 "libbase", 101 "libberberis_base", 102 "libberberis_interpreter_riscv64", 103 "libberberis_kernel_api_riscv64", 104 "liblog", 105 "libberberis_intrinsics_riscv64", 106 ], 107 srcs: [ 108 "riscv64/faulty_memory_accesses_test.cc", 109 "riscv64/interpreter_arm64_test.cc", 110 ], 111 header_libs: [ 112 "libberberis_base_headers", 113 "libberberis_guest_state_riscv64_headers", 114 "libberberis_interpreter_riscv64_headers", 115 "libberberis_runtime_primitives_headers", 116 ], 117 arch: { 118 x86_64: { 119 enabled: false, 120 }, 121 }, 122 static_executable: true, 123 host_supported: false, 124} 125