Выполнение сгенерированного кода MIPS (LLVM) на симуляторе спама завершается неудачно - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть простой исходный файл C, который печатает простые числа, и я компилирую его в MIPS с помощью:

$ clang -target mipsel-linux-gnu main.c -S -o main.s

Когда я пытаюсь запустить его на симуляторе spim, происходит сбой:

$ spim -f main.s
SPIM Version 8.0 of January 8, 2010
Copyright 1990-2010, James R. Larus.
All Rights Reserved.
See the file README for a full copyright notice.
Loaded: /usr/lib/spim/exceptions.s
spim: (parser) syntax error on line 3 of file main.s
        .abicalls
                ^
The following symbols are undefined:
main

Instruction references undefined symbol at 0x00400014
[0x00400014]    0x0c000000  jal 0x00000000 [main]           ; 188: jal main

Вот мой исходный файл C для завершения:

#include <stdio.h>

int IsPrime(int p)
{
    int i;
    int j;

    for (i=2;i<p;i++)
    {
        for (j=2;j<p;j++)
        {
            if (i*j == p)
            {
                return 0;
            }
        }
    }
    return 1;
}
void PrintPrimes(int start,int end)
{
    int i=0;

    for (i=start;i<=end;i++)
    {
        if (IsPrime(i))
        {
            printf("%d\n",i);
        }
    }
}
int main(int argc, char **argv)
{
    PrintPrimes(2,100);
    return 0;
}
...