LCOV - code coverage report
Current view: directory - src/trusted/validator/x86/decoder - ncop_exps_inl.c (source / functions) Found Hit Coverage
Test: coverage.lcov Lines: 22 20 90.9 %
Date: 2014-09-25 Functions: 0 0 -

       1                 : /*
       2                 :  * Copyright (c) 2012 The Native Client Authors. All rights reserved.
       3                 :  * Use of this source code is governed by a BSD-style license that can be
       4                 :  * found in the LICENSE file.
       5                 :  */
       6                 : 
       7                 : /*
       8                 :  * ncop_exps_inl.c - Holds inline routines for commonly used (simple)
       9                 :  * functions in ncop_exps.h. Used to speed up code. Inlined routines
      10                 :  * correspond to the following functions in ncop_exps.h, but with an
      11                 :  * 'Inline' suffix:
      12                 :  *
      13                 :  *    NaClGetExpRegister
      14                 :  */
      15                 : #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_DECODER_NCOP_EXPS_INL_H_
      16                 : #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_DECODER_NCOP_EXPS_INL_H_
      17                 : 
      18                 : #include <assert.h>
      19                 : #include "native_client/src/trusted/validator/x86/decoder/ncop_exps.h"
      20                 : 
      21               1 : static INLINE NaClOpKind NaClGetExpRegisterInline(NaClExp* node) {
      22               1 :   assert(node->kind == ExprRegister);
      23               1 :   return (NaClOpKind) node->value;
      24               1 : }
      25                 : 
      26                 : /* Return the sign extended integer in the given expr node. */
      27               1 : static INLINE int64_t NaClGetExprSignedValue(NaClExp* node) {
      28               1 :   if (node->flags & NACL_EFLAG(ExprSize8)) {
      29               1 :     return (int8_t) node->value;
      30               1 :   } else if (node->flags & NACL_EFLAG(ExprSize16)) {
      31               0 :     return (int16_t) node->value;
      32               1 :   } else if (node->flags & NACL_EFLAG(ExprSize32)) {
      33               1 :     return (int32_t) node->value;
      34                 :   } else {
      35               0 :     return (int64_t) node->value;
      36                 :   }
      37               1 : }
      38                 : 
      39                 : /* Return the zero padded integer in the given expr node. */
      40               1 : static INLINE uint64_t NaClGetExprUnsignedValue(NaClExp* node) {
      41               1 :   if (node->flags & NACL_EFLAG(ExprSize8)) {
      42               1 :     return (uint8_t) node->value;
      43               1 :   } else if (node->flags & NACL_EFLAG(ExprSize16)) {
      44               1 :     return (uint16_t) node->value;
      45               1 :   } else if (node->flags & NACL_EFLAG(ExprSize32)) {
      46               1 :     return (uint32_t) node->value;
      47                 :   } else {
      48               1 :     return (uint64_t) node->value;
      49                 :   }
      50               1 : }
      51                 : 
      52                 : #endif  /* NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_DECODER_NCOP_EXPS_INL_H_ */

Generated by: LCOV version 1.7