#include "backend.h" #include "ti_array_flags.h" #ifndef ti_ARRAY # error ti_ARRAY undefined #endif /* !ti_ARRAY */ #ifndef ti_RECTDOMAIN # error ti_RECTDOMAIN undefined #endif /* !ti_RECTDOMAIN */ #ifndef PTR_TO_T # error PTR_TO_T undefined #endif /* !PTR_TO_T */ #ifndef GLOBAL_ARRAY # error GLOBAL_ARRAY undefined #endif /* !GLOBAL_ARRAY */ struct ti_ARRAY { #if DUMPABLE_ARRAYS void (*dumpfn)(); #endif ti_RECTDOMAIN domain; /* The domain of the array. */ jint stride[N]; /* The stride for index calc. Must be >= 1. */ jint base[N]; /* The lower bound of domain. */ int sideFactors[N]; /* Used in the address calculation. */ PTR_TO_T A; PTR_TO_T ancestor; /* pointer to the start of the memory block returned by malloc which contains this array (for GC purposes) */ const char *where; /* where (in source code) the array was created */ #if EXPLICITLY_STORE_CREATOR jint creator; #endif #if defined(__mips64) && defined(__GNUC__) && __GNUC__ < 3 /* DOB: FRAGILE HACK - fixes a gcc bug on the Origin 2000 (PR 307) */ #if defined(WIDE_POINTERS) && GLOBAL_ARRAY jbyte _pad[8*N+1]; #else jbyte _pad[5]; #endif #endif };