Exemplo n.º 1
0
 void LongRegisterString::deallocate(Location l) {
   if (isRegister(l)) {
     bv->remove(l);
   } else {
     assert(isStackRegister(l), "should be stack reg");
     fint i = tempToIndex(l);
     bv->remove(i);
   }
 }
Exemplo n.º 2
0
void LongRegisterMask::deallocate(Location l) {
  if (l.isRegister()) {
    bv->remove(l.number());
  } else {
    assert(l.isStackLocation(), "should be stack reg");
    int i = tempToIndex(l);
    bv->remove(i);
  }
}
Exemplo n.º 3
0
 void LongRegisterString::doAllocate(Location l) {
   if (isRegister(l)) {
     bv->add(l);
   } else {
     assert(isStackRegister(l), "should be stack reg");
     fint i = tempToIndex(l);
     if (i >= bv->length) grow(i);
     bv->add(i);
   }
 }
Exemplo n.º 4
0
void LongRegisterMask::allocate(Location l) {
  if (l.isRegister()) {
    bv->add(l.number());
  } else {
    assert(l.isStackLocation(), "should be stack reg");
    int i = tempToIndex(l);
    if (i >= bv->length) grow();
    bv->add(i);
  }
}
Exemplo n.º 5
0
 bool LongRegisterString::isAllocated(Location l) {
   if (isRegister(l)) {
     return bv->includes(l);
   } else {
     assert(isStackRegister(l), "should be stack reg");
     fint i = tempToIndex(l);
     if (i < bv->length) {
       return bv->includes(i);
     } else {
       return false;
     }
   }
 }
Exemplo n.º 6
0
bool LongRegisterMask::isAllocated(Location l) {
  if (l.isRegister()) {
    return bv->includes(l.number());
  } else {
    assert(l.isStackLocation(), "should be stack reg");
    int i = tempToIndex(l);
    if (l.number() < bv->length) {
      return bv->includes(i);
    } else {
      return false;
    }
  }
}
Exemplo n.º 7
0
 Location findFirstUnusedTemp(LongRegisterString** strings, fint len) {
   fint i = findFirstUnused(strings, len, tempToIndex(StackLocation_for_index(0)));
   return indexToTemp(i);
 }