OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-dev/] [fsf-gcc-snapshot-1-mar-12/] [or1k-gcc/] [libgo/] [runtime/] [go-cgo.c] - Diff between revs 747 and 783

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 747 Rev 783
/* go-cgo.c -- SWIG support routines for libgo.
/* go-cgo.c -- SWIG support routines for libgo.
 
 
   Copyright 2011 The Go Authors. All rights reserved.
   Copyright 2011 The Go Authors. All rights reserved.
   Use of this source code is governed by a BSD-style
   Use of this source code is governed by a BSD-style
   license that can be found in the LICENSE file.  */
   license that can be found in the LICENSE file.  */
 
 
#include "go-alloc.h"
#include "go-alloc.h"
#include "interface.h"
#include "interface.h"
#include "go-panic.h"
#include "go-panic.h"
#include "go-string.h"
#include "go-string.h"
 
 
/* These are routines used by SWIG.  The gc runtime library provides
/* These are routines used by SWIG.  The gc runtime library provides
   the same routines under the same name, though in that case the code
   the same routines under the same name, though in that case the code
   is required to import runtime/cgo.  */
   is required to import runtime/cgo.  */
 
 
void *
void *
_cgo_allocate (size_t n)
_cgo_allocate (size_t n)
{
{
  return __go_alloc (n);
  return __go_alloc (n);
}
}
 
 
extern const struct __go_type_descriptor string_type_descriptor
extern const struct __go_type_descriptor string_type_descriptor
  asm ("__go_tdn_string");
  asm ("__go_tdn_string");
 
 
void
void
_cgo_panic (const char *p)
_cgo_panic (const char *p)
{
{
  int len;
  int len;
  unsigned char *data;
  unsigned char *data;
  struct __go_string *ps;
  struct __go_string *ps;
  struct __go_empty_interface e;
  struct __go_empty_interface e;
 
 
  len = __builtin_strlen (p);
  len = __builtin_strlen (p);
  data = __go_alloc (len);
  data = __go_alloc (len);
  __builtin_memcpy (data, p, len);
  __builtin_memcpy (data, p, len);
  ps = __go_alloc (sizeof *ps);
  ps = __go_alloc (sizeof *ps);
  ps->__data = data;
  ps->__data = data;
  ps->__length = len;
  ps->__length = len;
  e.__type_descriptor = &string_type_descriptor;
  e.__type_descriptor = &string_type_descriptor;
  e.__object = ps;
  e.__object = ps;
  __go_panic (e);
  __go_panic (e);
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.