| Index: src/trusted/validator/x86/ncval_reg_sfi/nc_postconds.c
|
| diff --git a/src/trusted/validator/x86/ncval_reg_sfi/nc_postconds.c b/src/trusted/validator/x86/ncval_reg_sfi/nc_postconds.c
|
| deleted file mode 100644
|
| index a89efffd8ca63c04978ea2b1df6ec5e757263c21..0000000000000000000000000000000000000000
|
| --- a/src/trusted/validator/x86/ncval_reg_sfi/nc_postconds.c
|
| +++ /dev/null
|
| @@ -1,105 +0,0 @@
|
| -/*
|
| - * Copyright (c) 2012 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.
|
| - */
|
| -
|
| -#include "native_client/src/trusted/validator/x86/ncval_reg_sfi/nc_postconds.h"
|
| -
|
| -#include "native_client/src/include/portability_io.h"
|
| -#include "native_client/src/shared/platform/nacl_log.h"
|
| -#include "native_client/src/trusted/validator/x86/decoder/ncop_exps.h"
|
| -#include "native_client/src/trusted/validator/x86/decoder/nc_inst_state.h"
|
| -#include "native_client/src/trusted/validator/x86/decoder/nc_inst_trans.h"
|
| -#include "native_client/src/trusted/validator/x86/ncval_reg_sfi/ncvalidate_iter.h"
|
| -#include "native_client/src/trusted/validator/x86/ncval_reg_sfi/ncvalidate_iter_internal.h"
|
| -#include "native_client/src/trusted/validator/x86/ncval_reg_sfi/ncvalidate_utils.h"
|
| -#include "native_client/src/trusted/validator/x86/ncval_reg_sfi/nc_memory_protect.h"
|
| -
|
| -/* To turn on debugging of instruction decoding, change value of
|
| - * DEBUGGING to 1.
|
| - */
|
| -#define DEBUGGING 0
|
| -
|
| -#include "native_client/src/shared/utils/debugging.h"
|
| -
|
| -#include "native_client/src/trusted/validator/x86/decoder/ncop_exps_inl.c"
|
| -
|
| -/* Maximum character buffer size to use for generating messages. */
|
| -static const size_t kMaxBufferSize = 1024;
|
| -
|
| -#ifdef NCVAL_TESTING
|
| -void NaClAddAssignsRegisterWithZeroExtendsPostconds(
|
| - struct NaClValidatorState* state) {
|
| - uint32_t i;
|
| - NaClExpVector* vector = state->cur_inst_vector;
|
| -
|
| - DEBUG(NaClValidatorInstMessage(
|
| - LOG_INFO, state, state->cur_inst_state,
|
| - "-> Checking ZeroExtends postconditions...\n"));
|
| -
|
| - /* Look for assignments to 32-bit registers for instructions that
|
| - * zero extend.
|
| - */
|
| - for (i = 0; i < vector->number_expr_nodes; ++i) {
|
| - NaClExp* node = &vector->node[i];
|
| - NaClOpKind node_reg;
|
| - if (ExprRegister != node->kind) continue;
|
| - if (!NaClHasBit(node->flags, NACL_EFLAG(ExprSet))) continue;
|
| - if (!NaClHasBit(node->flags, NACL_EFLAG(ExprSize32))) continue;
|
| - node_reg = NaClGetExpRegisterInline(node);
|
| - if (node_reg == RegUnknown) continue;
|
| - if (NaClAssignsRegisterWithZeroExtends32(state, 0, node_reg)) {
|
| - char* buffer;
|
| - size_t buffer_size;
|
| - char reg_name[kMaxBufferSize];
|
| - NaClOpRegName(node_reg, reg_name, kMaxBufferSize);
|
| - NaClConditionAppend(state->postcond, &buffer, &buffer_size);
|
| - SNPRINTF(buffer, buffer_size, "ZeroExtends(%s)", reg_name);
|
| - }
|
| - }
|
| - DEBUG(NaClValidatorMessage(
|
| - LOG_INFO, state, "<- Finished ZeroExtends postconditions...\n"));
|
| -}
|
| -
|
| -void NaClAddLeaSafeAddressPostconds(
|
| - struct NaClValidatorState* state) {
|
| - uint32_t i;
|
| - NaClExpVector* vector = state->cur_inst_vector;
|
| - DEBUG(NaClValidatorInstMessage(
|
| - LOG_INFO, state, state->cur_inst_state,
|
| - "Checking SafeAddress postconditions...\n"));
|
| -
|
| - /* Look for assignments to registers. */
|
| - for (i = 0; i < vector->number_expr_nodes; ++i) {
|
| - NaClOpKind reg;
|
| - NaClExp* node = &vector->node[i];
|
| - if (ExprRegister != node->kind) continue;
|
| - if (!NaClHasBit(node->flags, NACL_EFLAG(ExprSet))) continue;
|
| - if (!NaClHasBit(node->flags, NACL_EFLAG(ExprSize64))) continue;
|
| - reg = NaClGetExpRegisterInline(node);
|
| - if (RegUnknown == reg) continue;
|
| - if ((reg == RegRSP) || (reg == RegRBP)) {
|
| - /* Note: Do not need to check safe addresses computed
|
| - * by "LEA Rsp/Rbp ...". Currently, these two registers
|
| - * are already checked.. See NaClCheckRspAssignments and
|
| - * NaClCheckRbpAssignments in nc_protect_base.c for more
|
| - * information on how such LEA instructions are checked.
|
| - */
|
| - if (InstLea != NaClInstStateInst(state->cur_inst_state)->name) {
|
| - NaClAcceptLeaWithMoveLea32To64(state, reg);
|
| - }
|
| - } else if (NaClAcceptLeaSafeAddress(state)) {
|
| - char* buffer;
|
| - size_t buffer_size;
|
| - char reg_name[kMaxBufferSize];
|
| - NaClOpRegName(reg, reg_name, kMaxBufferSize);
|
| - NaClConditionAppend(state->postcond, &buffer, &buffer_size);
|
| - SNPRINTF(buffer, buffer_size, "SafeAddress(%s)", reg_name);
|
| - }
|
| - }
|
| - DEBUG(NaClValidatorMessage(
|
| - LOG_INFO, state, "Finished SafeAddress postconditions...\n"));
|
| -}
|
| -
|
| -#endif
|
|
|