{
int char_size;
int short_size;
- int int_size;
+ unsigned int int_size;
int long_size;
int ptr_size; //near
int fptr_size; //far
}
s;
+/** tags for far, near, xstack, code generic pointers */
+ struct
+ {
+ int tag_far;
+ int tag_near;
+ int tag_xstack;
+ int tag_code;
+ }
+ gp_tags;
+
/** memory regions related stuff */
struct
{
const char *xidata_name; // initialized xdata
const char *xinit_name; // a code copy of xidata
const char *const_name; // const data (code or not)
+ const char *cabs_name; // const absolute data (code or not)
struct memmap *default_local_map; // default location for auto vars
struct memmap *default_globl_map; // default location for globl vars
int code_ro; /* code space read-only 1=yes */
struct
{
- /** One more than the smallest
- mul/div operation the processor can do nativley
- Eg if the processor has an 8 bit mul, nativebelow is 2 */
- unsigned muldiv;
+ /** One more than the smallest
+ mul/div operation the processor can do natively
+ Eg if the processor has an 8 bit mul, native below is 2 */
+ unsigned muldiv;
unsigned shift;
}
support;
bool (*hasNativeMulFor) (iCode *ic, sym_link *left, sym_link *right);
/** Returns true if the port has implemented certain bit
- manipulation iCodes (RRC, RLC, SWAP, GETHBIT)
+ manipulation iCodes (RRC, RLC, SWAP, GETHBIT, GETABIT, GETBYTE, GETWORD)
*/
bool (*hasExtBitOp) (int op, int size);