*buffer = 's';
dReg->name = Safe_strdup(buffer);
}
- //fprintf(stderr,"newReg: %s, rIdx = 0x%02x\n",dReg->name,rIdx);
+ fprintf(stderr,"newReg: %s, rIdx = 0x%02x\n",dReg->name,rIdx);
dReg->isFree = 0;
dReg->wasUsed = 1;
if(type == REG_SFR)
extern void assignFixedRegisters(set *regset);
extern void assignRelocatableRegisters(set *regset,int used);
extern void dump_map(void);
-extern void dump_cblock(FILE *of);
-
+extern void dump_sfr(FILE *of);
void packBits(set *bregs)
{
breg = regset->item;
breg->isBitField = 1;
- //fprintf(stderr,"bit reg: %s\n",breg->name);
+ fprintf(stderr,"bit reg: %s\n",breg->name);
if(breg->isFixed) {
- //fprintf(stderr,"packing bit at fixed address = 0x%03x\n",breg->address);
+ fprintf(stderr,"packing bit at fixed address = 0x%03x\n",breg->address);
bitfield = typeRegWithIdx (breg->address >> 3, -1 , 1);
breg->rIdx = breg->address & 7;
if(!bitfield) {
sprintf (buffer, "fbitfield%02x", breg->address);
- //fprintf(stderr,"new bit field\n");
+ fprintf(stderr,"new bit field\n");
bitfield = newReg(REG_SFR, PO_GPR_BIT,breg->address,buffer,1,0);
bitfield->isBitField = 1;
bitfield->isFixed = 1;
bitfield->address = breg->address;
- addSet(&dynDirectRegs,bitfield);
+ //addSet(&dynDirectRegs,bitfield);
+ addSet(&dynInternalRegs,bitfield);
//hTabAddItem(&dynDirectRegNames, regname2key(buffer), bitfield);
} else {
//fprintf(stderr," which is occupied by %s (addr = %d)\n",bitfield->name,bitfield->address);
byte_no++;
bit_no=0;
sprintf (buffer, "bitfield%d", byte_no);
- //fprintf(stderr,"new relocatable bit field\n");
+ fprintf(stderr,"new relocatable bit field\n");
relocbitfield = newReg(REG_GPR, PO_GPR_BIT,rDirectIdx++,buffer,1,0);
relocbitfield->isBitField = 1;
- addSet(&dynDirectRegs,relocbitfield);
+ //addSet(&dynDirectRegs,relocbitfield);
+ addSet(&dynInternalRegs,relocbitfield);
//hTabAddItem(&dynDirectRegNames, regname2key(buffer), relocbitfield);
}
for (reg = setFirstItem(fregs) ; reg ;
reg = setNextItem(fregs)) {
- if(!reg->isEmitted && reg->wasUsed) {
+ //if(!reg->isEmitted && reg->wasUsed) {
+ if(reg->wasUsed) {
if(use_rIdx)
fprintf (of, "%s\tEQU\t0x%03x\n",
reg->name,
{
packBits(dynDirectBitRegs);
-
assignFixedRegisters(dynAllocRegs);
+ printf("assignFixedRegisters(dynAllocRegs);\n");
assignFixedRegisters(dynStackRegs);
+ printf("assignFixedRegisters(dynStackRegs);\n");
assignFixedRegisters(dynDirectRegs);
+ printf("assignFixedRegisters(dynDirectRegs);\n");
assignRelocatableRegisters(dynInternalRegs,0);
+ printf("assignRelocatableRegisters(dynInternalRegs,0);\n");
assignRelocatableRegisters(dynAllocRegs,0);
+ printf("assignRelocatableRegisters(dynAllocRegs,0);\n");
assignRelocatableRegisters(dynStackRegs,0);
+ printf("assignRelocatableRegisters(dynStackRegs,0);\n");
+/*
assignRelocatableRegisters(dynDirectRegs,0);
-
+ printf("assignRelocatableRegisters(dynDirectRegs,0);\n");
+*/
//dump_map();
- dump_cblock(of);
+ dump_sfr(of);
bitEQUs(of,dynDirectBitRegs);
+/*
aliasEQUs(of,dynAllocRegs,0);
aliasEQUs(of,dynDirectRegs,0);
aliasEQUs(of,dynStackRegs,0);
aliasEQUs(of,dynProcessorRegs,1);
-
+*/
}
#if 0