7 changed files with 52 additions and 17 deletions
@ -1,8 +1,10 @@ |
|||||
reg_t val = gprlen == 64 ? RA : sext32(RA); |
|
||||
|
|
||||
switch(insn.rtype.rb) |
switch(insn.rtype.rb) |
||||
{ |
{ |
||||
|
case 0: |
||||
|
set_fsr(RA); |
||||
|
break; |
||||
|
|
||||
case 29: |
case 29: |
||||
tid = val; |
tid = RA; |
||||
break; |
break; |
||||
} |
} |
||||
|
|||||
@ -1,27 +1,32 @@ |
|||||
require_supervisor; |
require_supervisor; |
||||
|
|
||||
reg_t val = gprlen == 64 ? RA : sext32(RA); |
|
||||
|
|
||||
switch(insn.rtype.rb) |
switch(insn.rtype.rb) |
||||
{ |
{ |
||||
case 0: |
case 0: |
||||
set_sr(val); |
set_sr(RA); |
||||
break; |
break; |
||||
case 1: |
case 1: |
||||
epc = val; |
epc = RA; |
||||
break; |
break; |
||||
case 3: |
case 3: |
||||
ebase = val & ~0xFFF; |
ebase = RA & ~0xFFF; |
||||
|
break; |
||||
|
case 4: |
||||
|
count = RA; |
||||
|
break; |
||||
|
case 5: |
||||
|
interrupts_pending &= ~(1 << TIMER_IRQ); |
||||
|
compare = RA; |
||||
break; |
break; |
||||
|
|
||||
case 16: |
case 16: |
||||
sim->set_tohost(val); |
sim->set_tohost(RA); |
||||
break; |
break; |
||||
|
|
||||
case 24: |
case 24: |
||||
pcr_k0 = val; |
pcr_k0 = RA; |
||||
break; |
break; |
||||
case 25: |
case 25: |
||||
pcr_k1 = val; |
pcr_k1 = RA; |
||||
break; |
break; |
||||
} |
} |
||||
|
|||||
Loading…
Reference in new issue