return pic->name;
}
-#if 0
-/*-----------------------------------------------------------------*
-*-----------------------------------------------------------------*/
-static int validAddress(int address, int reg_size)
-{
- if (maxRAMaddress < 0) {
- fprintf(stderr, "missing maxram setting in %s\n", DEVICE_FILE_NAME);
- return 0;
- }
- // fprintf(stderr, "validAddress: Checking 0x%04x\n",address);
- assert (reg_size > 0);
- if(address + (reg_size - 1) > maxRAMaddress)
- return 0;
-
- return 1;
-}
-#endif
-
-#if 0
-/* The following code should be (and is) implemented in the linker. */
-
-/*-----------------------------------------------------------------*
-*-----------------------------------------------------------------*/
-void mapRegister(regs *reg)
-{
-
- unsigned i;
- int alias;
-
- if(!reg || !reg->size) {
- fprintf(stderr,"WARNING: %s:%s:%d Bad register\n",__FILE__,__FUNCTION__,__LINE__);
- return;
- }
-
- if (maxRAMaddress < 0) {
- fprintf(stderr, "missing maxram setting in %s\n", DEVICE_FILE_NAME);
- return;
- }
-
- for(i=0; i<reg->size; i++) {
-
- assert(reg->address >= 0 && reg->address < maxRAMaddress);
-
- alias = finalMapping[reg->address].alias;
- reg->alias = alias;
-
- do {
-
- //fprintf(stdout,"mapping %s to address 0x%02x, reg size = %d\n",reg->name, (reg->address+alias+i),reg->size);
-
- finalMapping[reg->address + alias + i].reg = reg;
- finalMapping[reg->address + alias + i].instance = i;
-
- /* Decrement alias */
- if(alias)
- alias -= ((alias & (alias - 1)) ^ alias);
- else
- alias--;
-
- } while (alias>=0);
- }
-
- //fprintf(stderr,"%s - %s addr = 0x%03x, size %d\n",__FUNCTION__,reg->name, reg->address,reg->size);
-
- reg->isMapped = 1;
-
-}
-
-/*-----------------------------------------------------------------*
-*-----------------------------------------------------------------*/
-int assignRegister(regs *reg, int start_address)
-{
- int i;
-
- //fprintf(stderr,"%s - %s start_address = 0x%03x\n",__FUNCTION__,reg->name, start_address);
- if(reg->isFixed) {
-
- if (validAddress(reg->address,reg->size)) {
- //fprintf(stderr,"%s - %s address = 0x%03x\n",__FUNCTION__,reg->name, reg->address);
- mapRegister(reg);
- return reg->address;
- }
-
- if (getenv("SDCCPICDEBUG")) {
- fprintf(stderr, "WARNING: Ignoring Out of Range register assignment at fixed address %d, %s\n",
- reg->address, reg->name);
- }
-
- } else {
-
- /* This register does not have a fixed address requirement
- * so we'll search through all availble ram address and
- * assign the first one */
-
- for (i=start_address; i<=maxRAMaddress; i++) {
-
- if (validAddress(i,reg->size)) {
- reg->address = i;
- mapRegister(reg);
- return i;
- }
- }
-
- fprintf(stderr, "WARNING: No more RAM available for %s\n",reg->name);
-
- }
-
- return -1;
-}
-
-/*-----------------------------------------------------------------*
-*-----------------------------------------------------------------*/
-void assignFixedRegisters(set *regset)
-{
- regs *reg;
-
- for (reg = setFirstItem(regset) ; reg ;
- reg = setNextItem(regset)) {
-
- if(reg->isFixed)
- assignRegister(reg,0);
- }
-
-}
-
-/*-----------------------------------------------------------------*
-*-----------------------------------------------------------------*/
-void assignRelocatableRegisters(set *regset, int used)
-{
-
- regs *reg;
- int address = 0;
-
- for (reg = setFirstItem(regset) ; reg ;
- reg = setNextItem(regset)) {
-
- //fprintf(stdout,"assigning %s (%d) isFixed=%d, wasUsed=%d\n",reg->name,reg->size,reg->isFixed,reg->wasUsed);
-
- if((!reg->isExtern) && (!reg->isFixed) && ( used || reg->wasUsed)) {
- /* If register have been reused then shall not print it a second time. */
- set *s;
- int done = 0;
- for (s = regset; s; s = s->next) {
- regs *r;
- r = s->item;
- if (r == reg)
- break;
- if((!r->isFixed) && ( used || r->wasUsed)) {
- if (r->rIdx == reg->rIdx) {
- reg->address = r->address;
- done = 1;
- break;
- }
- }
- }
- if (!done)
- address = assignRegister(reg,address);
- }
- }
-
-}
-#endif
-
int IS_CONFIG_ADDRESS(int address)
{
}
}
-#if 0
-/*-----------------------------------------------------------------*
-*
-*-----------------------------------------------------------------*/
-static unsigned pic14_getMaxRam(void)
-{
- return pic->defMaxRAMaddrs;
-}
-#endif
-
/*-----------------------------------------------------------------*
* int getHasSecondConfigReg(void) - check if the device has a
* second config register, rather than just one.