Commit fb3f38da by Ian Lance Taylor

compiler, libgo: Fixes to prepare for 64-bit int.

From-SVN: r193254
parent 855a44ee
...@@ -2568,8 +2568,12 @@ Integer_type::create_abstract_integer_type() ...@@ -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, {
RUNTIME_TYPE_KIND_INT); Type* int_type = Type::lookup_integer_type("int");
abstract_type = new Integer_type(true, false,
int_type->integer_type()->bits(),
RUNTIME_TYPE_KIND_INT);
}
return abstract_type; return abstract_type;
} }
......
...@@ -13,11 +13,11 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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) ...@@ -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}; ...@@ -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) ...@@ -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 @@ ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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; ...@@ -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; ...@@ -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) { ...@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment