OpenCores
URL https://opencores.org/ocsvn/altor32/altor32/trunk

Subversion Repositories altor32

[/] [altor32/] [trunk/] [or1k-sim/] [or32.cpp] - Diff between revs 28 and 33

Show entire file | Details | Blame | View Log

Rev 28 Rev 33
Line 534... Line 534...
        case INST_OR32_ADDI: // l.addi 
        case INST_OR32_ADDI: // l.addi 
            v_reg_result = v_reg_ra + v_imm_int32;
            v_reg_result = v_reg_ra + v_imm_int32;
            v_write_rd = 1;
            v_write_rd = 1;
 
 
            // Carry out
            // Carry out
            r_sr = (r_sr & ~OR32_SR_CY_BIT) | (ADD_CARRY_OUT(v_reg_ra, v_reg_rb) ? OR32_SR_CY_BIT : 0);
            r_sr = (r_sr & ~OR32_SR_CY_BIT) | (ADD_CARRY_OUT(v_reg_ra, v_imm_int32) ? OR32_SR_CY_BIT : 0);
        break;
        break;
 
 
        case INST_OR32_ANDI: // l.andi
        case INST_OR32_ANDI: // l.andi
            v_reg_result = v_reg_ra & v_imm_uint32;
            v_reg_result = v_reg_ra & v_imm_uint32;
            v_write_rd = 1;
            v_write_rd = 1;
Line 1305... Line 1305...
            exit(r_gpr[NOP_DATA_REG]);
            exit(r_gpr[NOP_DATA_REG]);
        break;
        break;
        // Report value
        // Report value
        case NOP_REPORT:
        case NOP_REPORT:
            if (Trace)
            if (Trace)
                fprintf(stderr, "report(0x%x)\n", r_gpr[NOP_DATA_REG]);
                fprintf(stderr, "0x%x\n", r_gpr[NOP_DATA_REG]);
            else
            else
                printf("report(0x%x)\n", r_gpr[NOP_DATA_REG]);
                printf("0x%x\n", r_gpr[NOP_DATA_REG]);
        break;
        break;
        // putc()
        // putc()
        case NOP_PUTC:
        case NOP_PUTC:
            if (EnablePutc)
            if (EnablePutc)
            {
            {
Line 1342... Line 1342...
void OR32::DumpStats(void)
void OR32::DumpStats(void)
{
{
    printf("Runtime Stats:\n");
    printf("Runtime Stats:\n");
    printf("- Total Instructions %d\n", StatsInstructions);
    printf("- Total Instructions %d\n", StatsInstructions);
    printf("- Memory Operations %d (%d%%)\n", StatsMem, (StatsMem * 100) / StatsInstructions);
    printf("- Memory Operations %d (%d%%)\n", StatsMem, (StatsMem * 100) / StatsInstructions);
 
    if (StatsMem != 0)
 
    {
    printf("  - Reads %d (%d%%)\n", (StatsMem - StatsMemWrites), ((StatsMem - StatsMemWrites) * 100) / StatsMem);
    printf("  - Reads %d (%d%%)\n", (StatsMem - StatsMemWrites), ((StatsMem - StatsMemWrites) * 100) / StatsMem);
    printf("  - Writes %d (%d%%)\n", StatsMemWrites, (StatsMemWrites * 100) / StatsMem);
    printf("  - Writes %d (%d%%)\n", StatsMemWrites, (StatsMemWrites * 100) / StatsMem);
 
    }
    printf("- MUL %d (%d%%)\n", StatsMul, (StatsMul * 100) / StatsInstructions);
    printf("- MUL %d (%d%%)\n", StatsMul, (StatsMul * 100) / StatsInstructions);
    printf("- MULU %d (%d%%)\n", StatsMulu, (StatsMulu * 100) / StatsInstructions);
    printf("- MULU %d (%d%%)\n", StatsMulu, (StatsMulu * 100) / StatsInstructions);
    printf("- NOPS %d (%d%%)\n", StatsNop, (StatsNop * 100) / StatsInstructions);
    printf("- NOPS %d (%d%%)\n", StatsNop, (StatsNop * 100) / StatsInstructions);
    printf("- Markers %d (%d%%)\n", StatsMarkers, (StatsMarkers * 100) / StatsInstructions);
    printf("- Markers %d (%d%%)\n", StatsMarkers, (StatsMarkers * 100) / StatsInstructions);
    printf("- Branches Operations %d (%d%%)\n", StatsBranches, (StatsBranches * 100) / StatsInstructions);
    printf("- Branches Operations %d (%d%%)\n", StatsBranches, (StatsBranches * 100) / StatsInstructions);

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.