| Index: src/trusted/validator/x86/decoder/generator/modeled_nacl_inst.c
|
| diff --git a/src/trusted/validator/x86/decoder/generator/modeled_nacl_inst.c b/src/trusted/validator/x86/decoder/generator/modeled_nacl_inst.c
|
| deleted file mode 100644
|
| index 0975ffac928eff8023cc824d8dc25531742de728..0000000000000000000000000000000000000000
|
| --- a/src/trusted/validator/x86/decoder/generator/modeled_nacl_inst.c
|
| +++ /dev/null
|
| @@ -1,138 +0,0 @@
|
| -/*
|
| - * 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.
|
| - */
|
| -
|
| -#define NEEDSNACLINSTTYPESTRING
|
| -
|
| -#include "native_client/src/trusted/validator/x86/decoder/generator/modeled_nacl_inst.h"
|
| -
|
| -#include <string.h>
|
| -
|
| -void NaClSetOpcodeInModRm(uint8_t value, uint8_t *opcode_ext) {
|
| - *opcode_ext += value;
|
| -}
|
| -
|
| -void NaClSetOpcodeInModRmRm(uint8_t value, uint8_t *opcode_ext) {
|
| - *opcode_ext += (value << 4);
|
| -}
|
| -
|
| -void NaClSetOpcodePlusR(uint8_t value, uint8_t *opcode_ext) {
|
| - *opcode_ext += value;
|
| -}
|
| -
|
| -/* Print the flag name if the flag is defined for the corresponding operand.
|
| - * Used to print out set/use/zero extend information for partial instructions.
|
| - */
|
| -static void NaClPrintAddOperandFlag(struct Gio* f,
|
| - const NaClOp* op,
|
| - NaClOpFlag flag,
|
| - const char* flag_name) {
|
| - if (op->flags & NACL_OPFLAG(flag)) {
|
| - gprintf(f, "%s", flag_name);
|
| - }
|
| -}
|
| -
|
| -void NaClModeledInstPrint(struct Gio* f, const NaClModeledInst* inst) {
|
| - int i;
|
| - int count = 2;
|
| - /* Add prefix bytes if defined by prefix. */
|
| - const char* prefix = OpcodePrefixBytes(inst->prefix);
|
| - int prefix_len = (int) strlen(prefix);
|
| - gprintf(f, " %s", prefix);
|
| - if (prefix_len > 0) {
|
| - count += prefix_len + 1;
|
| - gprintf(f, " ");
|
| - }
|
| -
|
| - /* Add opcode bytes. */
|
| - for (i = 0; i < inst->num_opcode_bytes; ++i) {
|
| - if (i > 0) {
|
| - gprintf(f, " ");
|
| - ++count;
|
| - }
|
| - gprintf(f,"%02x", inst->opcode[i]);
|
| - count += 2;
|
| - }
|
| - if (inst->flags & NACL_IFLAG(OpcodeInModRm)) {
|
| - gprintf(f, " / %d", NaClGetOpcodeInModRm(inst->opcode_ext));
|
| - count += 4;
|
| - } else if (inst->flags & NACL_IFLAG(OpcodePlusR)) {
|
| - gprintf(f, " - r%d", NaClGetOpcodePlusR(inst->opcode_ext));
|
| - count += 5;
|
| - }
|
| - if (inst->flags & NACL_IFLAG(OpcodeInModRmRm)) {
|
| - gprintf(f, " / %d", NaClGetOpcodeInModRmRm(inst->opcode_ext));
|
| - count += 4;
|
| - }
|
| - while (count < 30) {
|
| - gprintf(f, " ");
|
| - ++count;
|
| - }
|
| - { /* Print out instruction type less the NACLi_ prefix. */
|
| - const char* name = NaClInstTypeString(inst->insttype);
|
| - gprintf(f, "%s ", name + strlen("NACLi_"));
|
| - }
|
| - if (inst->flags) NaClIFlagsPrint(f, inst->flags);
|
| - gprintf(f, "\n");
|
| -
|
| - /* If instruction type is invalid, and doesn't have
|
| - * special translation purposes, then don't print additional
|
| - * (ignored) information stored in the modeled instruction.
|
| - */
|
| - if ((NACLi_INVALID != inst->insttype) ||
|
| - ((inst->flags & NACL_IFLAG(Opcode0F0F)))) {
|
| - Bool is_first = TRUE;
|
| - int i;
|
| - gprintf(f, " ");
|
| -
|
| - /* Instruction has been simplified. Print out corresponding
|
| - * hints to the reader, so that they know that the instruction
|
| - * has been simplified.
|
| - */
|
| - if (NaClHasBit(inst->flags, NACL_IFLAG(PartialInstruction))) {
|
| - gprintf(f, "[P] ");
|
| - }
|
| - gprintf(f, "%s", NaClMnemonicName(inst->name));
|
| -
|
| - /* If an instruction has been simplified, and it illegal, communicate
|
| - * that in the printed modeled instruction.
|
| - */
|
| - if (NaClHasBit(inst->flags, NACL_IFLAG(NaClIllegal)) &&
|
| - NaClHasBit(inst->flags, NACL_IFLAG(PartialInstruction))) {
|
| - gprintf(f, "(illegal)");
|
| - }
|
| - for (i = 0; i < inst->num_operands; ++i) {
|
| - if (NULL == inst->operands[i].format_string) continue;
|
| - if (is_first) {
|
| - is_first = FALSE;
|
| - } else {
|
| - gprintf(f, ",");
|
| - }
|
| - gprintf(f, " %s", inst->operands[i].format_string);
|
| -
|
| - /* If this is a partial instruction, add set/use information
|
| - * so that that it is more clear what was matched.
|
| - */
|
| - if (NaClHasBit(inst->flags, NACL_IFLAG(PartialInstruction))) {
|
| - const NaClOp* op = inst->operands + i;
|
| - if (NaClHasBit(op->flags, (NACL_OPFLAG(OpSet) |
|
| - NACL_OPFLAG(OpUse) |
|
| - NACL_OPFLAG(OperandZeroExtends_v)))) {
|
| - gprintf(f, " (");
|
| - NaClPrintAddOperandFlag(f, op, OpSet, "s");
|
| - NaClPrintAddOperandFlag(f, op, OpUse, "u");
|
| - NaClPrintAddOperandFlag(f, op, OperandZeroExtends_v, "z");
|
| - gprintf(f, ")");
|
| - }
|
| - }
|
| - }
|
| - gprintf(f, "\n");
|
| - /* Now print actual encoding of each operand. */
|
| - for (i = 0; i < inst->num_operands; ++i) {
|
| - gprintf(f, " ");
|
| - NaClOpPrint(f, inst->operands + i);
|
| - }
|
| - }
|
| -}
|
|
|