fix some bugs affecting functions with no arguments

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30767 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2006-10-06 17:26:30 +00:00
parent 1b5076887e
commit af1dabef35
2 changed files with 6 additions and 2 deletions

View File

@ -181,6 +181,8 @@ public:
}
unsigned getStackSize(void) {
int last = is_reg.size() - 1;
if (last < 0)
return 0;
if (isRegister(last))
return 0;
return getOffset(last) + MVT::getSizeInBits(getType(last))/8;
@ -193,7 +195,7 @@ public:
last--;
return last;
}
unsigned lastRegNum(void) {
int lastRegNum(void) {
int l = lastRegArg();
if (l < 0)
return -1;
@ -264,7 +266,7 @@ static SDOperand LowerCALL(SDOperand Op, SelectionDAG &DAG) {
// Build a sequence of copy-to-reg nodes chained together with token chain
// and flag operands which copy the outgoing args into the appropriate regs.
SDOperand InFlag;
for (unsigned i = 0, e = Layout.lastRegArg(); i <= e; ++i) {
for (int i = 0, e = Layout.lastRegArg(); i <= e; ++i) {
SDOperand Arg = Op.getOperand(5+2*i);
unsigned RegNum = Layout.getRegisterNum(i);
unsigned Reg1 = regs[RegNum];

View File

@ -2,7 +2,9 @@
void %f() {
entry:
call void %g( int 1, int 2, int 3, int 4 )
call void %h()
ret void
}
declare void %g(int, int, int, int)
declare void %h()