ref: eb8b9ee63822d9a750a6507af00f33c5faf2d3a7
dir: /sys/src/libmp/port/mpfield.c/
#include "os.h"
#include <mp.h>
#include "dat.h"
mpint*
mpfield(mpint *N)
{
Mfield *f;
if(N == nil || N->flags & (MPfield|MPstatic))
return N;
if((f = cnfield(N)) != nil)
goto Exchange;
if((f = gmfield(N)) != nil)
goto Exchange;
return N;
Exchange:
setmalloctag(f, getcallerpc(&N));
mpfree(N);
return f;
}