mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	This test basically triggers an i$ miss during a d$ (hit) store operation. It requires some tricky timing (e.g. a flushD right before the relevant store). I use a script to generate the test.
		
			
				
	
	
		
			84 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
|       #include "WALLY-init-lib.h"
 | |
| main:
 | |
|       // start way test #1
 | |
|       li t0, 0x80100000
 | |
| .align 6
 | |
|       // i$ boundary, way test #1
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       sd zero, 0(t0)
 | |
|       sd zero, 0(t0)
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       // start way test #2
 | |
|       li t0, 0x80101000
 | |
| .align 6
 | |
|       // i$ boundary, way test #2
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       sd zero, 0(t0)
 | |
|       sd zero, 0(t0)
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       // start way test #3
 | |
|       li t0, 0x80102000
 | |
| .align 6
 | |
|       // i$ boundary, way test #3
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       sd zero, 0(t0)
 | |
|       sd zero, 0(t0)
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       // start way test #4
 | |
|       li t0, 0x80103000
 | |
| .align 6
 | |
|       // i$ boundary, way test #4
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       sd zero, 0(t0)
 | |
|       sd zero, 0(t0)
 | |
|       .word 0x00000013
 | |
|       .word 0x00000013
 | |
|       j done
 |