Added noreturn, removed logs
This commit is contained in:
parent
5727356559
commit
ce89df1ed4
@ -501,7 +501,7 @@ static void cpu_execute(rv32_cpu_t* cpu, instruction_t* instruction)
|
||||
case OPCODE_NOP:
|
||||
{
|
||||
// TODO : Implement PAUSE, FENCE, FENCE.TSO
|
||||
fprintf(stderr, "Warning: Unsupported NOP instruction\n");
|
||||
// fprintf(stderr, "Warning: Unsupported NOP instruction\n");
|
||||
break;
|
||||
}
|
||||
case OPCODE_SYSTEM:
|
||||
@ -602,14 +602,14 @@ static void cpu_execute(rv32_cpu_t* cpu, instruction_t* instruction)
|
||||
// Load-Reserved Word
|
||||
cpu->regs.x[instruction->rd] = mem_read32(address);
|
||||
// TODO register reservation set that subsumes the bytes in word
|
||||
fprintf(stderr, "LR.W\n");
|
||||
// fprintf(stderr, "LR.W\n");
|
||||
break;
|
||||
case FUNC75_SCW:
|
||||
// Store-Conditional Word
|
||||
// TODO succeed only if the reservation is still valid and the reservation set contains the bytes written
|
||||
mem_write32(address, cpu->regs.x[instruction->rs2]);
|
||||
cpu->regs.x[instruction->rd] = 0; // TODO write 1 in rd on failure
|
||||
fprintf(stderr, "SC.W\n");
|
||||
// fprintf(stderr, "SC.W\n");
|
||||
break;
|
||||
case FUNC75_AMOSWAPW:
|
||||
// Atomic Memory Operation SWAP Word
|
||||
@ -681,7 +681,7 @@ static void cpu_execute(rv32_cpu_t* cpu, instruction_t* instruction)
|
||||
}
|
||||
}
|
||||
|
||||
void cpu_loop(rv32_cpu_t* cpu)
|
||||
__attribute__((noreturn)) void cpu_loop(rv32_cpu_t* cpu)
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
|
@ -201,6 +201,6 @@ typedef struct RV32_CPU
|
||||
extern rv32_cpu_t* cpu0;
|
||||
extern pthread_mutex_t cpu0_mutex;
|
||||
void cpu_init();
|
||||
void cpu_loop(rv32_cpu_t* cpu);
|
||||
__attribute__((noreturn)) void cpu_loop(rv32_cpu_t* cpu);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user