Index: src/trusted/validator/x86/decoder/build.scons |
diff --git a/src/trusted/validator/x86/decoder/build.scons b/src/trusted/validator/x86/decoder/build.scons |
deleted file mode 100644 |
index 78d07a4d1bea0a4adf0d63edb23d9a3447cf0a0b..0000000000000000000000000000000000000000 |
--- a/src/trusted/validator/x86/decoder/build.scons |
+++ /dev/null |
@@ -1,150 +0,0 @@ |
-# -*- python -*- |
-# Copyright (c) 2011 The Native Client Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
- |
-import os |
-import sys |
-Import('env') |
- |
-# |
-# |
-# Build x86 only pieces |
-# |
-# |
-if not env.Bit('target_x86'): Return() |
- |
-# TODO(bradchen): eliminate need for the following line |
-env.FilterOut(CCFLAGS=['-Wextra', '-Wswitch-enum', '-Wsign-compare']) |
- |
-#----------- FILE GENERATION -------------------------- |
-# |
-# Generates source files needed by the decoder. |
- |
-generate = False |
-if 'valgen' in COMMAND_LINE_TARGETS: generate = True |
-if 'valclean' in COMMAND_LINE_TARGETS: generate = True |
- |
-# |
-# Only generate/clean these files if the alias is specified on the |
-# command line. We conditionally add these pieces to scons to prevent |
-# a normal invocation from accidentally regenerating the files. |
-# |
-if generate: |
- # |
- # valgen - Table Generator |
- # |
- # We create an alias 'valgen' which we use to generate the various |
- # headers used by the x86 validator. This target will generate |
- # *.h, *_impl.h from the *.enum files. |
- # |
- |
- # Define environment for generating files. |
- gen_env = env.Clone() |
- gen_env.Append(CCFLAGS=['-DNACL_TRUSTED_BUT_NOT_TCB']) |
- |
- # Get the directory in which we will generate checking in files. |
- header_prefix = env.subst('${MAIN_DIR}') |
- if header_prefix.endswith('/native_client'): |
- header_prefix = header_prefix[0:header_prefix.rfind('native_client')] |
- elif header_prefix.endswith('/native_client/'): |
- header_prefix = header_prefix[0:header_prefix.rfind('native_client/')] |
- decoder_src_dir = '$MAIN_DIR/src/trusted/validator/x86/decoder' |
- |
- #------------------------------------------------------ |
- # Generate the needed header files for enumerated types. |
- # Note that we use the same directory for all platforms. |
- |
- # Define enumerate type files, and the options to process. |
- enum_headers = [] |
- ncv_enum_pairs = { |
- 'ncopcode_prefix': '--name=NaClInstPrefix --add_size=1', |
- 'ncopcode_insts': |
- '--name=NaClMnemonic --add_size=1 --sort=1 --name_prefix=Inst', |
- 'ncopcode_opcode_flags': '--name=NaClIFlag --add_size=1', |
- 'ncopcode_operand_kind': '--name=NaClOpKind --add_size=1', |
- 'ncopcode_operand_flag': '--name=NaClOpFlag --add_size=1', |
- 'ncop_expr_node_flag': '--name=NaClExpFlag --add_size=1', |
- 'ncop_expr_node_kind': '--name=NaClExpKind --add_size=1', |
- } |
- |
- # Now code generate the enumerated types. |
- for ncv_enum in ncv_enum_pairs: |
- ncv_options = ncv_enum_pairs[ncv_enum] |
- ncv_enum_file = gen_env.File(ncv_enum + '.enum') |
- ncv_header_1 = gen_env.File('%s/gen/%s.h' % (decoder_src_dir, ncv_enum)) |
- ncv_header_2 = gen_env.File('%s/gen/%s_impl.h' % (decoder_src_dir, ncv_enum)) |
- |
- cmd_line = ( |
- '${PYTHON} %s --header="%s" --source="%s" --path_prefix="%s" %s %s' % |
- (gen_env.File('%s/../../../validator_x86/enum_gen.py' % decoder_src_dir), |
- ncv_header_1, ncv_header_2, header_prefix, |
- ncv_options, ncv_enum_file)) |
- gen_env.Command([ncv_header_1, ncv_header_2], ncv_enum_file, cmd_line) |
- enum_headers.append(ncv_header_1) |
- enum_headers.append(ncv_header_2) |
- |
- gen_list = enum_headers |
- gen_env.AlwaysBuild( |
- gen_env.Alias('valgen', gen_list)) |
- gen_env.AlwaysBuild( |
- gen_env.Alias('valclean', action=[Delete(x) for x in gen_list])) |
- |
-#---------- TESTS -------------------------------------- |
-# |
-# Create environment for command-line tools and testing, rather than |
-# part of the TCB. Then define compile-time flag that communicates |
-# that we are compiling in the test environment (rather than for the TCB). |
-test_env = env.Clone() |
-test_env.Append(CCFLAGS=['-DNACL_TRUSTED_BUT_NOT_TCB']) |
- |
-#---------- COMPONENTS BUILT --------------------------- |
- |
-# TODO(karl): merge nc_opcode_modeling and nc_decoder libraries. |
-# Instruction modeling for the decoder. |
-env.ComponentLibrary(env.NaClTargetArchSuffix('nc_opcode_modeling'), |
- ['ncopcode_desc.c', |
- ]) |
- |
-# Verbose routines for instruction modeling for the decoder. |
-env.ComponentLibrary(env.NaClTargetArchSuffix('nc_opcode_modeling_verbose'), |
- ['ncopcode_desc_verbose.c', |
- ]) |
- |
-# Decoder library. |
-env.ComponentLibrary(env.NaClTargetArchSuffix('nc_decoder'), |
- ['nc_inst_iter.c', |
- 'nc_inst_state.c', |
- 'nc_inst_trans.c', |
- 'ncop_exps.c', |
- ]) |
- |
-# Full decoder tables. |
-env.ComponentLibrary(env.NaClTargetArchSuffix('ncdis_decode_tables'), |
- ['ncdis_decode_tables.c']) |
- |
-#---------- UNIT TESTS --------------------------------- |
- |
-# Create an environment to run unit tests using Gtest. |
-gtest_env = env.MakeGTestEnv() |
- |
-# List of (unit) test file prefixes to run unit tests on. |
-gtest_sources = ['nc_inst_state'] |
- |
-for source in gtest_sources: |
- test_exe = gtest_env.ComponentProgram( |
- 'x86_decoder_tests_' + source, |
- [source+'_tests.cc'], |
- EXTRA_LIBS=[# Note: The following forces the inclusion |
- # of kNaClDecoderTables |
- gtest_env.NaClTargetArchSuffix('ncval_seg_sfi'), |
- gtest_env.NaClTargetArchSuffix('nc_decoder'), |
- gtest_env.NaClTargetArchSuffix('ncdis_decode_tables'), |
- gtest_env.NaClTargetArchSuffix('nc_opcode_modeling_verbose'), |
- ]) |
- test_node = gtest_env.CommandTest( |
- source+'Tests.out', |
- command=[test_exe]) |
- gtest_env.AddNodeToTestSuite(test_node, ['small_tests'], |
- 'run_x86_validator_tests') |