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

Unified Diff: src/trusted/validator_x86/ncdis_segments.c

Issue 625923004: Delete old x86 validator. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: rebase master Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/trusted/validator_x86/ncdis_segments.h ('k') | src/trusted/validator_x86/ncenuminsts.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/trusted/validator_x86/ncdis_segments.c
diff --git a/src/trusted/validator_x86/ncdis_segments.c b/src/trusted/validator_x86/ncdis_segments.c
deleted file mode 100644
index 67325cd475cdb44dacdaa13fc38536b2f85b6437..0000000000000000000000000000000000000000
--- a/src/trusted/validator_x86/ncdis_segments.c
+++ /dev/null
@@ -1,149 +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.
- */
-
-#ifndef NACL_TRUSTED_BUT_NOT_TCB
-#error("This file is not meant for use in the TCB")
-#endif
-
-#include "native_client/src/trusted/validator_x86/ncdis_segments.h"
-
-#include <string.h>
-
-#include "native_client/src/shared/platform/nacl_log.h"
-#include "native_client/src/trusted/validator/x86/decoder/nc_inst_iter.h"
-#include "native_client/src/trusted/validator/x86/decoder/nc_inst_state_internal.h"
-#include "native_client/src/trusted/validator/x86/decoder/ncop_exps.h"
-#include "native_client/src/trusted/validator_x86/ncdis_decode_tables.h"
-#include "native_client/src/trusted/validator/x86/ncval_reg_sfi/ncval_decode_tables.h"
-#include "native_client/src/trusted/validator/x86/ncval_seg_sfi/ncdecode_verbose.h"
-#include "native_client/src/trusted/validator/x86/nc_segment.h"
-
-/* Returns true if the disassemble flag is in the given flag set. */
-Bool NaClContainsDisasembleFlag(NaClDisassembleFlags flags,
- NaClDisassembleFlag flag) {
- return NaClHasBit(flags, NACL_DISASSEMBLE_FLAG(flag)) ? TRUE : FALSE;
-}
-
-static const char* kHardCodedMessage = "[hard coded]";
-
-/* Inspect the parsed instruction to print out the opcode sequence matched. */
-static void NaClInstPrintOpcodeSeq(struct Gio* gout,
- const NaClInstState* state) {
- size_t count = 0;
- if (state->num_opcode_bytes == 0) {
- /* Hard coded bytes sequence for instruction. */
- gprintf(gout, " %s", kHardCodedMessage);
- count = strlen(kHardCodedMessage) + 2;
- } else {
- /* Modeled instruction. Pull out parsed opcode bytes from parsed
- * instruction.
- */
- int i;
- gprintf(gout, " ");
- count = 1;
-
- /* Add prefix selector if applicable. */
- if (state->opcode_prefix) {
- gprintf(gout, " %02x", state->opcode_prefix);
- count += 3;
- }
-
- /* Add opcode bytes. */
- for (i = 0; i < state->num_opcode_bytes; ++i) {
- gprintf(gout, " %02x", state->bytes.byte[state->num_prefix_bytes + i]);
- count += 3;
- }
- if (state->inst->flags & NACL_IFLAG(OpcodeInModRm)) {
- gprintf(gout, " / %d", modrm_opcode(state->modrm));
- count += 4;
- } else if (state->inst->flags & NACL_IFLAG(OpcodePlusR)) {
- gprintf(gout, " - r%d",
- NaClGetOpcodePlusR(state->inst->opcode_ext));
- count += 5;
- }
- if (state->inst->flags & NACL_IFLAG(OpcodeInModRmRm)) {
- gprintf(gout, " / %d", modrm_rm(state->modrm));
- count += 4;
- }
- /* Add opcode for 0f0f instructions, where the opcode is the last
- * byte of the instruction.
- */
- if ((state->num_opcode_bytes >= 2) &&
- (0 == (state->inst->flags & NACL_IFLAG(Opcode0F0F))) &&
- (0x0F == state->bytes.byte[state->num_prefix_bytes]) &&
- (0x0F == state->bytes.byte[state->num_prefix_bytes + 1])) {
- gprintf(gout, " %02x", state->bytes.byte[state->bytes.length - 1]);
- count += 3;
- }
- }
- while (count < 30) {
- gprintf(gout, " ");
- ++count;
- }
-}
-
-/* Disassemble the code segment, using the given decoder tables.
- * Note: The decoder tables specified in the flags argument will
- * be ignored.
- *
- * Parameters:
- * mbase - Memory region containing code segment.
- * vbase - PC address associated with first byte of memory region.
- * size - Number of bytes in memory region.
- * flags - Flags to use when decoding.
- */
-static void NaClDisassembleSegmentUsingTables(
- uint8_t* mbase, NaClPcAddress vbase,
- NaClMemorySize size, NaClDisassembleFlags flags,
- const struct NaClDecodeTables* decoder_tables) {
- NaClSegment segment;
- NaClInstIter* iter;
- struct Gio* gout = NaClLogGetGio();
- Bool print_internals =
- NaClHasBit(flags, NACL_DISASSEMBLE_FLAG(NaClDisassembleAddInternals));
- NaClSegmentInitialize(mbase, vbase, size, &segment);
- iter = NaClInstIterCreate(decoder_tables, &segment);
- if (NULL == iter) {
- gprintf(gout, "Error: not enough memory\n");
- } else {
- for (; NaClInstIterHasNext(iter); NaClInstIterAdvance(iter)) {
- NaClInstState* state = NaClInstIterGetState(iter);
- NaClInstStateInstPrint(gout, state);
- if (print_internals) {
- NaClInstPrintOpcodeSeq(gout, state);
- NaClInstPrint(gout, state->decoder_tables, NaClInstStateInst(state));
- NaClExpVectorPrint(gout, state);
- }
- }
- NaClInstIterDestroy(iter);
- }
-}
-
-void NaClDisassembleSegment(uint8_t* mbase, NaClPcAddress vbase,
- NaClMemorySize size, NaClDisassembleFlags flags) {
- if (NaClHasBit(flags, NACL_DISASSEMBLE_FLAG(NaClDisassembleFull))) {
- if (NaClHasBit(flags,
- NACL_DISASSEMBLE_FLAG(NaClDisassembleValidatorDecoder))) {
- gprintf(NaClLogGetGio(),
- "Error: can't specify both full and validator disassembly,\n"
- " assuming full disassembly.\n");
- }
- NaClDisassembleSegmentUsingTables(mbase, vbase, size, flags,
- kNaClDecoderTables);
- } else if (NaClHasBit
- (flags,
- NACL_DISASSEMBLE_FLAG(NaClDisassembleValidatorDecoder))) {
- if (64 == NACL_TARGET_SUBARCH) {
- NaClDisassembleSegmentUsingTables(mbase, vbase, size, flags,
- kNaClValDecoderTables);
- } else {
- NCDecodeSegment(mbase, vbase, size);
- }
- } else {
- gprintf(NaClLogGetGio(),
- "Error: No decoder tables specified, can't disassemble\n");
- }
-}
« no previous file with comments | « src/trusted/validator_x86/ncdis_segments.h ('k') | src/trusted/validator_x86/ncenuminsts.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698