mirror of
				https://github.com/qemu/qemu.git
				synced 2025-10-31 04:06:46 +00:00 
			
		
		
		
	tests/tcg/xtensa: conditionalize windowed register tests
Make windowed register tests conditional on the presence of this option. Fix tests to work correctly for both 32 and 64 physical registers. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
This commit is contained in:
		
							parent
							
								
									00988da486
								
							
						
					
					
						commit
						c20e10eac8
					
				| @ -2,10 +2,12 @@ | ||||
| 
 | ||||
| test_suite windowed | ||||
| 
 | ||||
| #if XCHAL_HAVE_WINDOWED | ||||
| 
 | ||||
| .altmacro | ||||
| 
 | ||||
| .macro reset_window start | ||||
|     movi    a2, 0xff | ||||
|     movi    a2, 0xffff | ||||
|     wsr     a2, windowstart | ||||
|     rsync | ||||
|     movi    a2, 0 | ||||
| @ -105,7 +107,8 @@ test_end | ||||
|     movi    a3, 0x4001f | ||||
|     assert  eq, a2, a3 | ||||
|     rsr     a2, windowbase | ||||
|     assert  eqi, a2, 8 - ((\window) / 4) | ||||
|     movi    a3, (XCHAL_NUM_AREGS - (\window)) / 4 | ||||
|     assert  eq, a2, a3 | ||||
|     rsr     a2, windowstart | ||||
|     assert  eqi, a2, 1 | ||||
|     rfwu | ||||
| @ -116,8 +119,8 @@ test_end | ||||
|     rsr     a2, windowbase | ||||
|     assert  eqi, a2, 0 | ||||
|     rsr     a2, windowstart | ||||
|     assert  bsi, a2, 0 | ||||
|     assert  bsi, a2, 8 - ((\window) / 4) | ||||
|     assert  bsi.l, a2, 0 | ||||
|     assert  bsi.l, a2, (XCHAL_NUM_AREGS - (\window)) / 4 | ||||
| .endm | ||||
| 
 | ||||
| test underflow | ||||
| @ -132,7 +135,7 @@ test_end | ||||
| 
 | ||||
| 
 | ||||
| .macro retw_test window | ||||
|     reset_window %(1 | (1 << (8 - (\window) / 4))) | ||||
|     reset_window %(1 | (1 << ((XCHAL_NUM_AREGS - \window) / 4))) | ||||
|     reset_ps | ||||
| 
 | ||||
|     ssai    2 | ||||
| @ -147,10 +150,11 @@ test_end | ||||
|     movi    a3, 0x4000f | ||||
|     assert  eq, a2, a3 | ||||
|     rsr     a2, windowbase | ||||
|     assert  eqi, a2, 8 - ((\window) / 4) | ||||
|     movi    a3, (XCHAL_NUM_AREGS - (\window)) / 4 | ||||
|     assert  eq, a2, a3 | ||||
|     rsr     a2, windowstart | ||||
|     assert  bci, a2, 0 | ||||
|     assert  bsi, a2, 8 - ((\window) / 4) | ||||
|     assert  bci.l, a2, 0 | ||||
|     assert  bsi.l, a2, (XCHAL_NUM_AREGS - (\window)) / 4 | ||||
| .endm | ||||
| 
 | ||||
| test retw | ||||
| @ -180,7 +184,7 @@ test movsp | ||||
| 
 | ||||
|     set_vector kernel, 0 | ||||
| 
 | ||||
|     reset_window 0x81 | ||||
|     reset_window %(0x1 | (1 << ((XCHAL_NUM_AREGS / 4) - 1))) | ||||
|     reset_ps | ||||
| 
 | ||||
|     movsp   a2, a3 | ||||
| @ -211,8 +215,16 @@ test rotw | ||||
|     movi    a3, 0x16 | ||||
|     movi    a7, 0x17 | ||||
| 
 | ||||
| #if XCHAL_NUM_AREGS == 32 | ||||
|     movi    a2, 0x44 | ||||
|     wsr     a2, windowstart | ||||
| #elif XCHAL_NUM_AREGS == 64 | ||||
|     movi    a2, 0x4004 | ||||
|     wsr     a2, windowstart | ||||
|     rotw    -8 | ||||
| #else | ||||
| #error XCHAL_NUM_AREGS unsupported | ||||
| #endif | ||||
|     rsync | ||||
| 
 | ||||
|     movi    a2, 0x10 | ||||
| @ -350,4 +362,6 @@ test entry_overflow | ||||
|     all_entry_overflow_tests | ||||
| test_end | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| test_suite_end | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Max Filippov
						Max Filippov