Constants are laid out in memory in PC-relative form.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6568 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Misha Brukman 2003-06-03 03:24:12 +00:00
parent e630b7f3e9
commit e8e28dd7af

View File

@ -195,7 +195,7 @@ int64_t SparcV9CodeEmitter::getMachineOpValue(MachineInstr &MI,
BBRefs.push_back(std::make_pair(BB, std::make_pair(CurrPC, &MI)));
} else if (Constant *C = dyn_cast<Constant>(V)) {
if (ConstantMap.find(C) != ConstantMap.end())
rv = (int64_t)(intptr_t)ConstantMap[C];
rv = (int64_t)(intptr_t)ConstantMap[C] - MCE->getCurrentPCValue();
else {
std::cerr << "ERROR: constant not in map:" << MO << "\n";
abort();