| Index: src/trusted/validator/x86/ncinstbuffer.c
|
| diff --git a/src/trusted/validator/x86/ncinstbuffer.c b/src/trusted/validator/x86/ncinstbuffer.c
|
| deleted file mode 100644
|
| index 680f5da59c1a67865caa607cc7735ca885dece52..0000000000000000000000000000000000000000
|
| --- a/src/trusted/validator/x86/ncinstbuffer.c
|
| +++ /dev/null
|
| @@ -1,194 +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 <stdio.h>
|
| -
|
| -#include "native_client/src/shared/platform/nacl_check.h"
|
| -#include "native_client/src/trusted/validator/x86/ncinstbuffer.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/ncinstbuffer_inl.c"
|
| -
|
| -void NCRemainingMemoryAdvance(NCRemainingMemory* memory) {
|
| - NCRemainingMemoryAdvanceInline(memory);
|
| -}
|
| -
|
| -void NCRemainingMemoryReset(NCRemainingMemory* memory) {
|
| - NCRemainingMemoryResetInline(memory);
|
| -}
|
| -
|
| -const char* NCRemainingMemoryErrorMessage(NCRemainingMemoryError error) {
|
| - switch (error) {
|
| - case NCRemainingMemoryOverflow:
|
| - return "Read past end of memory segment occurred.";
|
| - case NCInstBufferOverflow:
|
| - return "Internal error: instruction buffer overflow.";
|
| - case NCUnknownMemoryError:
|
| - default:
|
| - return "Unknown memory error occurred.";
|
| - }
|
| -}
|
| -
|
| -void NCRemainingMemoryReportError(NCRemainingMemoryError error,
|
| - NCRemainingMemory* memory) {
|
| - fprintf(stdout, "%s\n", NCRemainingMemoryErrorMessage(error));
|
| -}
|
| -
|
| -void NCRemainingMemoryInit(uint8_t* memory_base, NaClMemorySize size,
|
| - NCRemainingMemory* memory) {
|
| - memory->mpc = memory_base;
|
| - memory->cur_pos = memory->mpc;
|
| - memory->mlimit = memory_base + size;
|
| - memory->next_byte = NCRemainingMemoryPeekInline(memory);
|
| - memory->error_fn = NCRemainingMemoryReportError;
|
| - memory->error_fn_state = NULL;
|
| - NCRemainingMemoryAdvanceInline(memory);
|
| -}
|
| -
|
| -uint8_t NCRemainingMemoryLookahead(NCRemainingMemory* memory, ssize_t n) {
|
| - return NCRemainingMemoryLookaheadInline(memory, n);
|
| -}
|
| -
|
| -uint8_t NCRemainingMemoryRead(NCRemainingMemory* memory) {
|
| - return NCRemainingMemoryReadInline(memory);
|
| -}
|
| -
|
| -void NCInstBytesInitMemory(NCInstBytes* bytes, NCRemainingMemory* memory) {
|
| -#if NCBUF_CLEAR_CACHE
|
| - int i;
|
| - for (i = 0; i < MAX_INST_LENGTH; ++i) {
|
| - bytes->byte[i] = 0;
|
| - }
|
| -#endif
|
| - bytes->memory = memory;
|
| - bytes->length = 0;
|
| -}
|
| -
|
| -void NCInstBytesReset(NCInstBytes* buffer) {
|
| - NCInstBytesResetInline(buffer);
|
| -}
|
| -
|
| -void NCInstBytesInit(NCInstBytes* buffer) {
|
| - NCInstBytesInitInline(buffer);
|
| -}
|
| -
|
| -uint8_t NCInstBytesPeek(NCInstBytes* bytes, ssize_t n) {
|
| - return NCInstBytesPeekInline(bytes, n);
|
| -}
|
| -
|
| -uint8_t NCInstByte(NCInstBytes* bytes, ssize_t n) {
|
| - return NCInstByteInline(bytes, n);
|
| -}
|
| -
|
| -uint8_t NCInstBytesRead(NCInstBytes* bytes) {
|
| - return NCInstBytesReadInline(bytes);
|
| -}
|
| -
|
| -void NCInstBytesReadBytes(ssize_t n, NCInstBytes* bytes) {
|
| - NCInstBytesReadBytesInline(n, bytes);
|
| -}
|
| -
|
| -#if NCBUF_CLEAR_CACHE
|
| -#define NCBUF_BYTES_LENGTH(bytes) MAX_INST_LENGTH
|
| -#else
|
| -#define NCBUF_BYTES_LENGTH(bytes) (bytes)->length
|
| -#endif
|
| -
|
| -static INLINE void NCInstBytesPtrInitPos(
|
| - NCInstBytesPtr* ptr, const NCInstBytes* bytes, int pos) {
|
| - ptr->bytes = bytes;
|
| - if (pos <= NCBUF_BYTES_LENGTH(bytes)) {
|
| - ptr->pos = (uint8_t) pos;
|
| - } else {
|
| - bytes->memory->error_fn(NCInstBufferOverflow, bytes->memory);
|
| - ptr->pos = bytes->length;
|
| - }
|
| -}
|
| -
|
| -void NCInstBytesPtrInit(NCInstBytesPtr* ptr, const NCInstBytes* bytes) {
|
| - NCInstBytesPtrInitPos(ptr, bytes, 0);
|
| -}
|
| -
|
| -void NCInstBytesPtrInitInc(NCInstBytesPtr* ptr, const NCInstBytesPtr* base,
|
| - int pos) {
|
| - NCInstBytesPtrInitPos(ptr, base->bytes, base->pos + pos);
|
| -}
|
| -
|
| -uint8_t NCInstBytesPos(const NCInstBytesPtr* ptr) {
|
| - return ptr->pos;
|
| -}
|
| -
|
| -uint8_t NCInstBytesByte(const NCInstBytesPtr* ptr, int n) {
|
| - return NCInstBytesByteInline(ptr, n);
|
| -}
|
| -
|
| -int32_t NCInstBytesInt32(const NCInstBytesPtr* ptr, int num_bytes) {
|
| - switch (num_bytes) {
|
| - case 1:
|
| - return (int8_t) NCInstBytesByteInline(ptr, 0);
|
| - case 2:
|
| - return (int16_t) (NCInstBytesByteInline(ptr, 0) +
|
| - (NCInstBytesByteInline(ptr, 1) << 8));
|
| - case 3:
|
| - /* Note: Handle special case of Iw, Ib in 32 bit validator. */
|
| - return (int32_t) (NCInstBytesByteInline(ptr, 0) +
|
| - (NCInstBytesByteInline(ptr, 1) << 8) +
|
| - (NCInstBytesByteInline(ptr, 2) << 16));
|
| - case 4:
|
| - return (int32_t) (NCInstBytesByteInline(ptr, 0) +
|
| - (NCInstBytesByteInline(ptr, 1) << 8) +
|
| - (NCInstBytesByteInline(ptr, 2) << 16) +
|
| - (NCInstBytesByteInline(ptr, 3) << 24));
|
| - default:
|
| - CHECK(0); /* Fail -- should not happen. */
|
| - return -1;
|
| - }
|
| -}
|
| -
|
| -int64_t NCInstBytesInt64(const NCInstBytesPtr* ptr, int num_bytes) {
|
| - switch (num_bytes) {
|
| - case 1:
|
| - case 2:
|
| - case 3: /* Handle special case of Iw, Ib in 32 bit validator. */
|
| - case 4:
|
| - return (int64_t) NCInstBytesInt32(ptr, num_bytes);
|
| - case 6: {
|
| - /* Handle special case of 48-bit pointers in 32 bit validator. */
|
| - NCInstBytesPtr ptr_plus_2;
|
| - NCInstBytesPtrInitInc(&ptr_plus_2, ptr, 2);
|
| - return ((int64_t) (NCInstBytesInt32(&ptr_plus_2, 2)) << 32) |
|
| - ((int64_t) (NCInstBytesInt32(ptr, 4)));
|
| - }
|
| - case 8: {
|
| - NCInstBytesPtr ptr_plus_4;
|
| - NCInstBytesPtrInitInc(&ptr_plus_4, ptr, 4);
|
| - return ((int64_t) (NCInstBytesInt32(&ptr_plus_4, 4)) << 32) |
|
| - ((int64_t) (NCInstBytesInt32(ptr, 4)));
|
| - }
|
| - default:
|
| - CHECK(0); /* Fail -- should not happen. */
|
| - return -1;
|
| - }
|
| -}
|
| -
|
| -void NCInstBytesAdvance(NCInstBytesPtr* ptr, int n) {
|
| - int index = ptr->pos + n;
|
| - if (index < NCBUF_BYTES_LENGTH(ptr->bytes)) {
|
| - ptr->pos = index;
|
| - } else {
|
| - ptr->bytes->memory->error_fn(NCInstBufferOverflow, ptr->bytes->memory);
|
| - }
|
| -}
|
| -
|
| -int NCInstBytesLength(const NCInstBytesPtr* ptr) {
|
| - return (int) ptr->bytes->length - (int) ptr->pos;
|
| -}
|
|
|