-1072286ca9249bd6f75628aead325a66286bcf5b
+925635f067d40d30acf565b620cc859ee7cbc990
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
break;
case Runtime::MAKECHAN:
+ case Runtime::MAKECHAN64:
case Runtime::MAKEMAP:
case Runtime::MAKESLICE:
case Runtime::MAKESLICE64:
switch (fe->runtime_code())
{
case Runtime::MAKECHAN:
+ case Runtime::MAKECHAN64:
case Runtime::MAKEMAP:
case Runtime::MAKESLICE:
case Runtime::MAKESLICE64:
switch (fe->runtime_code())
{
case Runtime::MAKECHAN:
+ case Runtime::MAKECHAN64:
case Runtime::MAKEMAP:
case Runtime::MAKESLICE:
case Runtime::MAKESLICE64:
switch (call->fn()->func_expression()->runtime_code())
{
case Runtime::MAKECHAN:
+ case Runtime::MAKECHAN64:
case Runtime::MAKEMAP:
case Runtime::MAKESLICE:
case Runtime::MAKESLICE64:
else if (is_chan)
{
Expression* type_arg = Expression::make_type_descriptor(type, type_loc);
- call = Runtime::make_call(Runtime::MAKECHAN, loc, 2, type_arg, len_arg);
+ Runtime::Function code = Runtime::MAKECHAN;
+ if (!len_small)
+ code = Runtime::MAKECHAN64;
+ call = Runtime::make_call(code, loc, 2, type_arg, len_arg);
}
else
go_unreachable();
// Make a channel.
-DEF_GO_RUNTIME(MAKECHAN, "runtime.makechan", P2(TYPE, INT64), R1(CHAN))
+DEF_GO_RUNTIME(MAKECHAN, "runtime.makechan", P2(TYPE, INT), R1(CHAN))
+DEF_GO_RUNTIME(MAKECHAN64, "runtime.makechan64", P2(TYPE, INT64), R1(CHAN))
// Send a value on a channel.
DEF_GO_RUNTIME(CHANSEND, "runtime.chansend1", P2(CHAN, POINTER), R0())
// themselves, so that the compiler will export them.
//
//go:linkname makechan runtime.makechan
+//go:linkname makechan64 runtime.makechan64
//go:linkname chansend1 runtime.chansend1
//go:linkname chanrecv1 runtime.chanrecv1
//go:linkname chanrecv2 runtime.chanrecv2