Plan 9 from Bell Labs’s /usr/web/sources/contrib/fernan/nhc98/src/runtime/Mk/mkInt.c

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


#include "mk.h"

NodePtr nhc_mkInt(Int i)
{
  NodePtr n;
  n = C_ALLOC(1+EXTRA+1);
  n[0] = CONSTRW(1,0);
  INIT_PROFINFO(n,&dummyProfInfo)
  n[EXTRA+1] = i;
  return n;
}

NodePtr nhc_mkInt64(long long i)
{
  NodePtr n;
  union { long long wide;
          int       norm[2];
        } x;
  x.wide = i;
  n = C_ALLOC(1+EXTRA+2);
  n[0] = CONSTRW(2,0);
  INIT_PROFINFO(n,&dummyProfInfo)
  n[EXTRA+1] = x.norm[0];
  n[EXTRA+2] = x.norm[1];
  return n;
}

long long nhc_get_64bit_value (NodePtr n)
{
  union { long long wide;
          int       norm[2];
        } x;
  x.norm[0] = n[EXTRA+1];
  x.norm[1] = n[EXTRA+2];
  return x.wide;
}

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.