mirror of git://gcc.gnu.org/git/gcc.git
compiler, libgo: Fixes to prepare for 64-bit int.
From-SVN: r193254
This commit is contained in:
parent
855a44ee8f
commit
fb3f38da2a
|
|
@ -2568,8 +2568,12 @@ Integer_type::create_abstract_integer_type()
|
||||||
{
|
{
|
||||||
static Integer_type* abstract_type;
|
static Integer_type* abstract_type;
|
||||||
if (abstract_type == NULL)
|
if (abstract_type == NULL)
|
||||||
abstract_type = new Integer_type(true, false, INT_TYPE_SIZE,
|
{
|
||||||
|
Type* int_type = Type::lookup_integer_type("int");
|
||||||
|
abstract_type = new Integer_type(true, false,
|
||||||
|
int_type->integer_type()->bits(),
|
||||||
RUNTIME_TYPE_KIND_INT);
|
RUNTIME_TYPE_KIND_INT);
|
||||||
|
}
|
||||||
return abstract_type;
|
return abstract_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,11 +13,11 @@
|
||||||
We deliberately don't split the stack in case it does call the
|
We deliberately don't split the stack in case it does call the
|
||||||
library function, which shouldn't need much stack space. */
|
library function, which shouldn't need much stack space. */
|
||||||
|
|
||||||
int IndexByte (struct __go_open_array, char)
|
intgo IndexByte (struct __go_open_array, char)
|
||||||
asm ("bytes.IndexByte")
|
asm ("bytes.IndexByte")
|
||||||
__attribute__ ((no_split_stack));
|
__attribute__ ((no_split_stack));
|
||||||
|
|
||||||
int
|
intgo
|
||||||
IndexByte (struct __go_open_array s, char b)
|
IndexByte (struct __go_open_array s, char b)
|
||||||
{
|
{
|
||||||
char *p;
|
char *p;
|
||||||
|
|
|
||||||
|
|
@ -6,14 +6,16 @@
|
||||||
|
|
||||||
#include <syslog.h>
|
#include <syslog.h>
|
||||||
|
|
||||||
|
#include "runtime.h"
|
||||||
|
|
||||||
/* We need to use a C function to call the syslog function, because we
|
/* We need to use a C function to call the syslog function, because we
|
||||||
can't represent a C varargs function in Go. */
|
can't represent a C varargs function in Go. */
|
||||||
|
|
||||||
void syslog_c(int, const char*)
|
void syslog_c(intgo, const char*)
|
||||||
asm ("log_syslog.syslog_c");
|
asm ("log_syslog.syslog_c");
|
||||||
|
|
||||||
void
|
void
|
||||||
syslog_c (int priority, const char *msg)
|
syslog_c (intgo priority, const char *msg)
|
||||||
{
|
{
|
||||||
syslog (priority, "%s", msg);
|
syslog (priority, "%s", msg);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,10 +10,10 @@
|
||||||
#include "arch.h"
|
#include "arch.h"
|
||||||
#include "malloc.h"
|
#include "malloc.h"
|
||||||
|
|
||||||
String Signame (int sig) asm ("syscall.Signame");
|
String Signame (intgo sig) asm ("syscall.Signame");
|
||||||
|
|
||||||
String
|
String
|
||||||
Signame (int sig)
|
Signame (intgo sig)
|
||||||
{
|
{
|
||||||
const char* s = NULL;
|
const char* s = NULL;
|
||||||
char buf[100];
|
char buf[100];
|
||||||
|
|
@ -27,7 +27,7 @@ Signame (int sig)
|
||||||
|
|
||||||
if (s == NULL)
|
if (s == NULL)
|
||||||
{
|
{
|
||||||
snprintf(buf, sizeof buf, "signal %d", sig);
|
snprintf(buf, sizeof buf, "signal %ld", (long) sig);
|
||||||
s = buf;
|
s = buf;
|
||||||
}
|
}
|
||||||
len = __builtin_strlen (s);
|
len = __builtin_strlen (s);
|
||||||
|
|
|
||||||
|
|
@ -124,7 +124,7 @@ static uintptr eod[3] = {0, 1, 0};
|
||||||
static void LostProfileData(void) {
|
static void LostProfileData(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
extern void runtime_SetCPUProfileRate(int32)
|
extern void runtime_SetCPUProfileRate(intgo)
|
||||||
__asm__("runtime.SetCPUProfileRate");
|
__asm__("runtime.SetCPUProfileRate");
|
||||||
|
|
||||||
// SetCPUProfileRate sets the CPU profiling rate.
|
// SetCPUProfileRate sets the CPU profiling rate.
|
||||||
|
|
|
||||||
|
|
@ -106,10 +106,11 @@ __go_map_next_prime (uintptr_t n)
|
||||||
struct __go_map *
|
struct __go_map *
|
||||||
__go_new_map (const struct __go_map_descriptor *descriptor, uintptr_t entries)
|
__go_new_map (const struct __go_map_descriptor *descriptor, uintptr_t entries)
|
||||||
{
|
{
|
||||||
intgo ientries;
|
int32 ientries;
|
||||||
struct __go_map *ret;
|
struct __go_map *ret;
|
||||||
|
|
||||||
ientries = (intgo) entries;
|
/* The master library limits map entries to int32, so we do too. */
|
||||||
|
ientries = (int32) entries;
|
||||||
if (ientries < 0 || (uintptr_t) ientries != entries)
|
if (ientries < 0 || (uintptr_t) ientries != entries)
|
||||||
runtime_panicstring ("map size out of range");
|
runtime_panicstring ("map size out of range");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
characters used from STR. */
|
characters used from STR. */
|
||||||
|
|
||||||
int
|
int
|
||||||
__go_get_rune (const unsigned char *str, size_t len, int *rune)
|
__go_get_rune (const unsigned char *str, size_t len, int32 *rune)
|
||||||
{
|
{
|
||||||
int c, c1, c2, c3, l;
|
int c, c1, c2, c3, l;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,6 @@ __go_ptr_strings_equal (const String *ps1, const String *ps2)
|
||||||
return __go_strings_equal (*ps1, *ps2);
|
return __go_strings_equal (*ps1, *ps2);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int __go_get_rune (const unsigned char *, size_t, int *);
|
extern int __go_get_rune (const unsigned char *, size_t, int32 *);
|
||||||
|
|
||||||
#endif /* !defined(LIBGO_GO_STRING_H) */
|
#endif /* !defined(LIBGO_GO_STRING_H) */
|
||||||
|
|
|
||||||
|
|
@ -29,13 +29,13 @@ runtime_printtrace (uintptr *pcbuf, int32 c)
|
||||||
{
|
{
|
||||||
String fn;
|
String fn;
|
||||||
String file;
|
String file;
|
||||||
int line;
|
intgo line;
|
||||||
|
|
||||||
if (__go_file_line (pcbuf[i], &fn, &file, &line)
|
if (__go_file_line (pcbuf[i], &fn, &file, &line)
|
||||||
&& runtime_showframe (fn.str))
|
&& runtime_showframe (fn.str))
|
||||||
{
|
{
|
||||||
runtime_printf ("%S\n", fn);
|
runtime_printf ("%S\n", fn);
|
||||||
runtime_printf ("\t%S:%d\n", file, line);
|
runtime_printf ("\t%S:%D\n", file, (int64) line);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -610,11 +610,11 @@ runtime_goroutinetrailer(G *g)
|
||||||
if(g != nil && g->gopc != 0 && g->goid != 1) {
|
if(g != nil && g->gopc != 0 && g->goid != 1) {
|
||||||
String fn;
|
String fn;
|
||||||
String file;
|
String file;
|
||||||
int line;
|
intgo line;
|
||||||
|
|
||||||
if(__go_file_line(g->gopc - 1, &fn, &file, &line)) {
|
if(__go_file_line(g->gopc - 1, &fn, &file, &line)) {
|
||||||
runtime_printf("created by %S\n", fn);
|
runtime_printf("created by %S\n", fn);
|
||||||
runtime_printf("\t%S:%d\n", file, line);
|
runtime_printf("\t%S:%D\n", file, (int64) line);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -341,7 +341,7 @@ int32 runtime_ncpu;
|
||||||
/*
|
/*
|
||||||
* common functions and data
|
* common functions and data
|
||||||
*/
|
*/
|
||||||
int32 runtime_findnull(const byte*);
|
intgo runtime_findnull(const byte*);
|
||||||
void runtime_dump(byte*, int32);
|
void runtime_dump(byte*, int32);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -614,7 +614,7 @@ extern uintptr runtime_stacks_sys;
|
||||||
|
|
||||||
struct backtrace_state;
|
struct backtrace_state;
|
||||||
extern struct backtrace_state *__go_get_backtrace_state(void);
|
extern struct backtrace_state *__go_get_backtrace_state(void);
|
||||||
extern _Bool __go_file_line(uintptr, String*, String*, int *);
|
extern _Bool __go_file_line(uintptr, String*, String*, intgo *);
|
||||||
extern byte* runtime_progname();
|
extern byte* runtime_progname();
|
||||||
|
|
||||||
int32 getproccount(void);
|
int32 getproccount(void);
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ func stringiter(s String, k int) (retk int) {
|
||||||
out:
|
out:
|
||||||
}
|
}
|
||||||
|
|
||||||
func stringiter2(s String, k int) (retk int, retv int) {
|
func stringiter2(s String, k int) (retk int, retv int32) {
|
||||||
if(k >= s.len) {
|
if(k >= s.len) {
|
||||||
// retk=0 is end of iteration
|
// retk=0 is end of iteration
|
||||||
retk = 0;
|
retk = 0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue