@@ -77,23 +77,16 @@ static void emu_update_timer_interrupt(hart_t *hart)
7777 emu_state_t * data = PRIV (hart );
7878
7979 /* Sync global timer with local timer */
80- #if SEMU_HAS (ACLINT )
8180 hart -> time = data -> mtimer .mtime ;
8281 aclint_mtimer_update_interrupts (hart , & data -> mtimer );
83- #else
84- hart -> time = data -> clint .mtime ;
85- clint_update_interrupts (hart , & data -> clint );
86- #endif
8782}
8883
89- #if SEMU_HAS (ACLINT )
9084static void emu_update_swi_interrupt (hart_t * hart )
9185{
9286 emu_state_t * data = PRIV (hart );
9387 aclint_mswi_update_interrupts (hart , & data -> mswi );
9488 aclint_sswi_update_interrupts (hart , & data -> sswi );
9589}
96- #endif
9790
9891static void mem_load (hart_t * hart ,
9992 uint32_t addr ,
@@ -131,7 +124,6 @@ static void mem_load(hart_t *hart,
131124 emu_update_vblk_interrupts (hart -> vm );
132125 return ;
133126#endif
134- #if SEMU_HAS (ACLINT )
135127 case 0x43 : /* mtimer */
136128 aclint_mtimer_read (hart , & data -> mtimer , addr & 0xFFFFF , width ,
137129 value );
@@ -145,12 +137,6 @@ static void mem_load(hart_t *hart,
145137 aclint_sswi_read (hart , & data -> sswi , addr & 0xFFFFF , width , value );
146138 aclint_sswi_update_interrupts (hart , & data -> sswi );
147139 return ;
148- #else
149- case 0x43 : /* clint */
150- clint_read (hart , & data -> clint , addr & 0xFFFFF , width , value );
151- clint_update_interrupts (hart , & data -> clint );
152- return ;
153- #endif
154140 }
155141 }
156142 vm_set_exception (hart , RV_EXC_LOAD_FAULT , hart -> exc_val );
@@ -192,7 +178,6 @@ static void mem_store(hart_t *hart,
192178 emu_update_vblk_interrupts (hart -> vm );
193179 return ;
194180#endif
195- #if SEMU_HAS (ACLINT )
196181 case 0x43 : /* mtimer */
197182 aclint_mtimer_write (hart , & data -> mtimer , addr & 0xFFFFF , width ,
198183 value );
@@ -206,12 +191,6 @@ static void mem_store(hart_t *hart,
206191 aclint_sswi_write (hart , & data -> sswi , addr & 0xFFFFF , width , value );
207192 aclint_sswi_update_interrupts (hart , & data -> sswi );
208193 return ;
209- #else
210- case 0x43 : /* clint */
211- clint_write (hart , & data -> clint , addr & 0xFFFFF , width , value );
212- clint_update_interrupts (hart , & data -> clint );
213- return ;
214- #endif
215194 }
216195 }
217196 vm_set_exception (hart , RV_EXC_STORE_FAULT , hart -> exc_val );
@@ -231,15 +210,9 @@ static inline sbi_ret_t handle_sbi_ecall_TIMER(hart_t *hart, int32_t fid)
231210 emu_state_t * data = PRIV (hart );
232211 switch (fid ) {
233212 case SBI_TIMER__SET_TIMER :
234- #if SEMU_HAS (ACLINT )
235213 data -> mtimer .mtimecmp [hart -> mhartid ] =
236214 (((uint64_t ) hart -> x_regs [RV_R_A1 ]) << 32 ) |
237215 (uint64_t ) (hart -> x_regs [RV_R_A0 ]);
238- #else
239- data -> clint .mtimecmp [hart -> mhartid ] =
240- (((uint64_t ) hart -> x_regs [RV_R_A1 ]) << 32 ) |
241- (uint64_t ) (hart -> x_regs [RV_R_A0 ]);
242- #endif
243216 hart -> sip &= ~RV_INT_STI_BIT ;
244217 return (sbi_ret_t ){SBI_SUCCESS , 0 };
245218 default :
@@ -313,21 +286,11 @@ static inline sbi_ret_t handle_sbi_ecall_IPI(hart_t *hart, int32_t fid)
313286 hart_mask = (uint64_t ) hart -> x_regs [RV_R_A0 ];
314287 hart_mask_base = (uint64_t ) hart -> x_regs [RV_R_A1 ];
315288 if (hart_mask_base == 0xFFFFFFFFFFFFFFFF ) {
316- for (uint32_t i = 0 ; i < hart -> vm -> n_hart ; i ++ ) {
317- #if SEMU_HAS (ACLINT )
289+ for (uint32_t i = 0 ; i < hart -> vm -> n_hart ; i ++ )
318290 data -> sswi .ssip [i ] = 1 ;
319- #else
320- data -> clint .msip [i ] = 1 ;
321- #endif
322- }
323291 } else {
324- for (int i = hart_mask_base ; hart_mask ; hart_mask >>= 1 , i ++ ) {
325- #if SEMU_HAS (ACLINT )
292+ for (int i = hart_mask_base ; hart_mask ; hart_mask >>= 1 , i ++ )
326293 data -> sswi .ssip [i ] = hart_mask & 1 ;
327- #else
328- data -> clint .msip [i ] = hart_mask & 1 ;
329- #endif
330- }
331294 }
332295
333296 return (sbi_ret_t ){SBI_SUCCESS , 0 };
@@ -586,11 +549,7 @@ static int semu_start(int argc, char **argv)
586549 /* Initialize the emulator */
587550 emu_state_t emu ;
588551 memset (& emu , 0 , sizeof (emu ));
589- #if SEMU_HAS (ACLINT )
590552 semu_timer_init (& emu .mtimer .mtime , CLOCK_FREQ );
591- #else
592- semu_timer_init (& emu .clint .mtime , CLOCK_FREQ );
593- #endif
594553
595554 /* Set up RAM */
596555 emu .ram = mmap (NULL , RAM_SIZE , PROT_READ | PROT_WRITE ,
@@ -680,9 +639,7 @@ static int semu_start(int argc, char **argv)
680639 }
681640
682641 emu_update_timer_interrupt (vm .hart [i ]);
683- #if SEMU_HAS (ACLINT )
684642 emu_update_swi_interrupt (vm .hart [i ]);
685- #endif
686643
687644 vm_step (vm .hart [i ]);
688645 if (likely (!vm .hart [i ]-> error ))
0 commit comments