Revert Christopher Lamb's load/store alignment changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36309 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer
2007-04-21 18:36:27 +00:00
parent b3b0727032
commit c67bdc288a
14 changed files with 4366 additions and 3467 deletions

View File

@@ -616,7 +616,7 @@ void BytecodeWriter::outputInstruction(const Instruction &I) {
unsigned Opcode = I.getOpcode();
unsigned NumOperands = I.getNumOperands();
// Encode 'tail call' as 61
// Encode 'tail call' as 61, 'volatile load' as 62, and 'volatile store' as
// 63.
if (const CallInst *CI = dyn_cast<CallInst>(&I)) {
if (CI->getCallingConv() == CallingConv::C) {
@@ -632,6 +632,10 @@ void BytecodeWriter::outputInstruction(const Instruction &I) {
} else {
Opcode = 58; // Call escape sequence.
}
} else if (isa<LoadInst>(I) && cast<LoadInst>(I).isVolatile()) {
Opcode = 62;
} else if (isa<StoreInst>(I) && cast<StoreInst>(I).isVolatile()) {
Opcode = 63;
}
// Figure out which type to encode with the instruction. Typically we want
@@ -740,32 +744,6 @@ void BytecodeWriter::outputInstruction(const Instruction &I) {
} else if (isa<InvokeInst>(I)) {
// Invoke escape seq has at least 4 operands to encode.
++NumOperands;
} else if (const LoadInst *LI = dyn_cast<LoadInst>(&I)) {
// Encode attributed load as opcode 62
// We need to encode the attributes of the load instruction as the second
// operand. Its not really a slot, but we don't want to break the
// instruction format for these instructions.
if (LI->getAlignment() || LI->isVolatile()) {
NumOperands = 2;
Slots[1] = ((Log2_32(LI->getAlignment())+1)<<1) +
(LI->isVolatile() ? 1 : 0);
if (Slots[1] > MaxOpSlot)
MaxOpSlot = Slots[1];
Opcode = 62;
}
} else if (const StoreInst *SI = dyn_cast<StoreInst>(&I)) {
// Encode attributed store as opcode 63
// We need to encode the attributes of the store instruction as the third
// operand. Its not really a slot, but we don't want to break the
// instruction format for these instructions.
if (SI->getAlignment() || SI->isVolatile()) {
NumOperands = 3;
Slots[2] = ((Log2_32(SI->getAlignment())+1)<<1) +
(SI->isVolatile() ? 1 : 0);
if (Slots[2] > MaxOpSlot)
MaxOpSlot = Slots[2];
Opcode = 63;
}
}
// Decide which instruction encoding to use. This is determined primarily