diff options
author | Andrew Waterman <waterman@s141.Millennium.Berkeley.EDU> | 2010-09-09 15:39:40 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@s141.Millennium.Berkeley.EDU> | 2010-09-09 15:39:40 -0700 |
commit | 03e016c3d7909ffd2c162ec21dff61076442fa05 (patch) | |
tree | ceb534368a4dceea4b85928b8d7942f33695cac8 /pk/entry.S | |
parent | 7fc9ae774bd8c64e53cb35fd88d467c7a18db55f (diff) | |
download | pk-03e016c3d7909ffd2c162ec21dff61076442fa05.zip pk-03e016c3d7909ffd2c162ec21dff61076442fa05.tar.gz pk-03e016c3d7909ffd2c162ec21dff61076442fa05.tar.bz2 |
[pk, sim] added interrupt support to sim; added timer interrupt
Diffstat (limited to 'pk/entry.S')
-rw-r--r-- | pk/entry.S | 20 |
1 files changed, 19 insertions, 1 deletions
@@ -116,7 +116,17 @@ pop_tf: # write the trap frame onto the stack eret .end pop_tf - + #define TIMER_IRQ_HANDLER \ + .align 7; \ + mtpcr $x2,ASM_CR(PCR_K0); \ + mtpcr $x1,ASM_CR(PCR_K1); \ + mfpcr $x1,ASM_CR(PCR_COMPARE); \ + liw $x2,TIMER_PERIOD; \ + addw $x1,$x1,$x2; \ + mtpcr $x1,ASM_CR(PCR_COMPARE); \ + mfpcr $x1,ASM_CR(PCR_K1); \ + mfpcr $x2,ASM_CR(PCR_K0); \ + eret #define TRAP_TABLE_ENTRY(x) \ .align 7; \ @@ -150,6 +160,14 @@ trap_table: TRAP_TABLE_ENTRY(handle_badtrap) TRAP_TABLE_ENTRY(handle_badtrap) TRAP_TABLE_ENTRY(handle_badtrap) + TRAP_TABLE_ENTRY(handle_badtrap) + TRAP_TABLE_ENTRY(handle_badtrap) + TRAP_TABLE_ENTRY(handle_badtrap) + TRAP_TABLE_ENTRY(handle_badtrap) + TRAP_TABLE_ENTRY(handle_badtrap) + TRAP_TABLE_ENTRY(handle_badtrap) + TRAP_TABLE_ENTRY(handle_badtrap) + TIMER_IRQ_HANDLER .align 12 .end trap_table |