@ -1,6 +1,6 @@
/ *
* FreeRTOS V 2 0 2 2 1 2 . 0 0
* Copyright ( C ) 2 0 2 0 A m a z o n . c o m , I n c . o r i t s a f f i l i a t e s . A l l R i g h t s R e s e r v e d .
* Copyright ( C ) 2 0 2 0 A m a z o n . c o m , I n c . o r i t s a f f i l i a t e s . A l l R i g h t s R e s e r v e d .
*
* Permission i s h e r e b y g r a n t e d , f r e e o f c h a r g e , t o a n y p e r s o n o b t a i n i n g a c o p y o f
* this s o f t w a r e a n d a s s o c i a t e d d o c u m e n t a t i o n f i l e s ( t h e " S o f t w a r e " ) , t o d e a l i n
@ -37,7 +37,7 @@
* main_ f u l l . c .
* /
.align ( 4 )
.align ( 8 )
vRegTest1Implementation :
/* Fill the core registers with known values. */
@ -69,6 +69,70 @@ vRegTest1Implementation:
li x30 , 0 x1 e
li x31 , 0 x1 f
# endif
# if _ _ r i s c v _ f l e n = = 6 4
li x15 , 0 x C 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 6
fmv. d . x f0 , x15
li x15 , 0 x C 0 2 E 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 5
fmv. d . x f1 , x15
li x15 , 0 x C 0 2 C 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 4
fmv. d . x f2 , x15
li x15 , 0 x c02 a00 0 0 0 0 0 0 0 0 0 0 / / - 1 3
fmv. d . x f3 , x15
li x15 , 0 x C 0 2 8 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 2
fmv. d . x f4 , x15
li x15 , 0 x C 0 2 6 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 1
fmv. d . x f5 , x15
li x15 , 0 x c02 4 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 0
fmv. d . x f6 , x15
li x15 , 0 x c02 2 0 0 0 0 0 0 0 0 0 0 0 0 / / - 9
fmv. d . x f7 , x15
li x15 , 0 x c02 0 0 0 0 0 0 0 0 0 0 0 0 0 / / - 8
fmv. d . x f8 , x15
li x15 , 0 x c01 c00 0 0 0 0 0 0 0 0 0 0 / / - 7
fmv. d . x f9 , x15
li x15 , 0 x c01 8 0 0 0 0 0 0 0 0 0 0 0 0 / / - 6
fmv. d . x f10 , x15
li x15 , 0 x c01 4 0 0 0 0 0 0 0 0 0 0 0 0 / / - 5
fmv. d . x f11 , x15
li x15 , 0 x c01 0 0 0 0 0 0 0 0 0 0 0 0 0 / / - 4
fmv. d . x f12 , x15
li x15 , 0 x c00 8 0 0 0 0 0 0 0 0 0 0 0 0 / / - 3
fmv. d . x f13 , x15
li x15 , 0 x c00 0 0 0 0 0 0 0 0 0 0 0 0 0 / / - 2
fmv. d . x f14 , x15
li x15 , 0 x b f f00 0 0 0 0 0 0 0 0 0 0 0 / / - 1
fmv. d . x f15 , x15
li x15 , 0 / / 0
fmv. d . x f16 , x15
li x15 , 0 x3 f f00 0 0 0 0 0 0 0 0 0 0 0 / / 1
fmv. d . x f17 , x15
li x15 , 0 x40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 / / 2
fmv. d . x f18 , x15
li x15 , 0 x40 0 8 0 0 0 0 0 0 0 0 0 0 0 0 / / 3
fmv. d . x f19 , x15
li x15 , 0 x40 1 0 0 0 0 0 0 0 0 0 0 0 0 0 / / 4
fmv. d . x f20 , x15
li x15 , 0 x40 1 4 0 0 0 0 0 0 0 0 0 0 0 0 / / 5
fmv. d . x f21 , x15
li x15 , 0 x40 1 8 0 0 0 0 0 0 0 0 0 0 0 0 / / 6
fmv. d . x f22 , x15
li x15 , 0 x40 1 c00 0 0 0 0 0 0 0 0 0 0 / / 7
fmv. d . x f23 , x15
li x15 , 0 x40 2 0 0 0 0 0 0 0 0 0 0 0 0 0 / / 8
fmv. d . x f24 , x15
li x15 , 0 x40 2 2 0 0 0 0 0 0 0 0 0 0 0 0 / / 9
fmv. d . x f25 , x15
li x15 , 0 x40 2 4 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 0
fmv. d . x f26 , x15
li x15 , 0 x40 2 6 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 1
fmv. d . x f27 , x15
li x15 , 0 x40 2 8 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 2
fmv. d . x f28 , x15
li x15 , 0 x40 2 a00 0 0 0 0 0 0 0 0 0 0 / / 1 3
fmv. d . x f29 , x15
li x15 , 0 x40 2 C 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 4
fmv. d . x f30 , x15
# endif
reg1_loop :
@ -129,12 +193,145 @@ reg1_loop:
li x15 , 0 x1 f
bne x15 , x31 , r e g 1 _ e r r o r _ l o o p
# endif
# if _ _ r i s c v _ f l e n = = 6 4
li x15 , 0 x C 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 6
fmv. d . x f31 , x15
feq. d x15 , f0 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x C 0 2 E 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 5
fmv. d . x f31 , x15
feq. d x15 , f1 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x C 0 2 C 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 4
fmv. d . x f31 , x15
feq. d x15 , f2 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x c02 a00 0 0 0 0 0 0 0 0 0 0 / / - 1 3
fmv. d . x f31 , x15
feq. d x15 , f3 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x C 0 2 8 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 2
fmv. d . x f31 , x15
feq. d x15 , f4 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x C 0 2 6 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 1
fmv. d . x f31 , x15
feq. d x15 , f5 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x c02 4 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 0
fmv. d . x f31 , x15
feq. d x15 , f6 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x c02 2 0 0 0 0 0 0 0 0 0 0 0 0 / / - 9
fmv. d . x f31 , x15
feq. d x15 , f7 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x c02 0 0 0 0 0 0 0 0 0 0 0 0 0 / / - 8
fmv. d . x f31 , x15
feq. d x15 , f8 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x c01 c00 0 0 0 0 0 0 0 0 0 0 / / - 7
fmv. d . x f31 , x15
feq. d x15 , f9 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x c01 8 0 0 0 0 0 0 0 0 0 0 0 0 / / - 6
fmv. d . x f31 , x15
feq. d x15 , f10 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x c01 4 0 0 0 0 0 0 0 0 0 0 0 0 / / - 5
fmv. d . x f31 , x15
feq. d x15 , f11 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x c01 0 0 0 0 0 0 0 0 0 0 0 0 0 / / - 4
fmv. d . x f31 , x15
feq. d x15 , f12 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x c00 8 0 0 0 0 0 0 0 0 0 0 0 0 / / - 3
fmv. d . x f31 , x15
feq. d x15 , f13 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x c00 0 0 0 0 0 0 0 0 0 0 0 0 0 / / - 2
fmv. d . x f31 , x15
feq. d x15 , f14 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x b f f00 0 0 0 0 0 0 0 0 0 0 0 / / - 1
fmv. d . x f31 , x15
feq. d x15 , f15 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 / / 0
fmv. d . x f31 , x15
feq. d x15 , f16 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x3 f f00 0 0 0 0 0 0 0 0 0 0 0 / / 1
fmv. d . x f31 , x15
feq. d x15 , f17 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 / / 2
fmv. d . x f31 , x15
feq. d x15 , f18 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x40 0 8 0 0 0 0 0 0 0 0 0 0 0 0 / / 3
fmv. d . x f31 , x15
feq. d x15 , f19 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x40 1 0 0 0 0 0 0 0 0 0 0 0 0 0 / / 4
fmv. d . x f31 , x15
feq. d x15 , f20 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x40 1 4 0 0 0 0 0 0 0 0 0 0 0 0 / / 5
fmv. d . x f31 , x15
feq. d x15 , f21 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x40 1 8 0 0 0 0 0 0 0 0 0 0 0 0 / / 6
fmv. d . x f31 , x15
feq. d x15 , f22 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x40 1 c00 0 0 0 0 0 0 0 0 0 0 / / 7
fmv. d . x f31 , x15
feq. d x15 , f23 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x40 2 0 0 0 0 0 0 0 0 0 0 0 0 0 / / 8
fmv. d . x f31 , x15
feq. d x15 , f24 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x40 2 2 0 0 0 0 0 0 0 0 0 0 0 0 / / 9
fmv. d . x f31 , x15
feq. d x15 , f25 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x40 2 4 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 0
fmv. d . x f31 , x15
feq. d x15 , f26 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x40 2 6 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 1
fmv. d . x f31 , x15
feq. d x15 , f27 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x40 2 8 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 2
fmv. d . x f31 , x15
feq. d x15 , f28 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x40 2 a00 0 0 0 0 0 0 0 0 0 0 / / 1 3
fmv. d . x f31 , x15
feq. d x15 , f29 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
li x15 , 0 x40 2 C 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 4
fmv. d . x f31 , x15
feq. d x15 , f30 , f31
beqz x15 , r e g 1 _ e r r o r _ l o o p
# endif
/* Everything passed, increment the loop counter. */
# if _ _ r i s c v _ x l e n = = 6 4
ld x15 , u l R e g T e s t 1 L o o p C o u n t e r C o n s t
ld x14 , 0 ( x15 )
addi x14 , x14 , 1
sd x14 , 0 ( x15 )
# else
lw x15 , u l R e g T e s t 1 L o o p C o u n t e r C o n s t
lw x14 , 0 ( x15 )
addi x14 , x14 , 1
sw x14 , 0 ( x15 )
# endif
/* Restore clobbered register reading for next loop. */
li x14 , 0 x e
@ -149,12 +346,12 @@ reg1_error_loop:
/* Busy loop which holds the task. */
jal r e g 1 _ e r r o r _ l o o p
.align ( 4 )
ulRegTest1LoopCounterConst : . word u l R e g T e s t 1 LoopCounter
.align ( 8 )
ulRegTest1LoopCounterConst : . d word u l R e g T e s t 1 LoopCounter
/*-----------------------------------------------------------*/
.align ( 4 )
.align ( 8 )
vRegTest2Implementation :
/* Fill the core registers with known values. */
@ -186,6 +383,70 @@ vRegTest2Implementation:
li x30 , 0 x2 e
li x31 , 0 x2 f
# endif
# if _ _ r i s c v _ f l e n = = 6 4
li x5 , 0 x40 2 E 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 5
fmv. d . x f1 , x5
li x5 , 0 x40 2 C 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 4
fmv. d . x f2 , x5
li x5 , 0 x40 2 a00 0 0 0 0 0 0 0 0 0 0 / / 1 3
fmv. d . x f3 , x5
li x5 , 0 x40 2 8 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 2
fmv. d . x f4 , x5
li x5 , 0 x40 2 6 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 1
fmv. d . x f5 , x5
li x5 , 0 x40 2 4 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 0
fmv. d . x f6 , x5
li x5 , 0 x40 2 2 0 0 0 0 0 0 0 0 0 0 0 0 / / 9
fmv. d . x f7 , x5
li x5 , 0 x40 2 0 0 0 0 0 0 0 0 0 0 0 0 0 / / 8
fmv. d . x f8 , x5
li x5 , 0 x40 1 c00 0 0 0 0 0 0 0 0 0 0 / / 7
fmv. d . x f9 , x5
li x5 , 0 x40 1 8 0 0 0 0 0 0 0 0 0 0 0 0 / / 6
fmv. d . x f10 , x5
li x5 , 0 x40 1 4 0 0 0 0 0 0 0 0 0 0 0 0 / / 5
fmv. d . x f11 , x5
li x5 , 0 x40 1 0 0 0 0 0 0 0 0 0 0 0 0 0 / / 4
fmv. d . x f12 , x5
li x5 , 0 x40 0 8 0 0 0 0 0 0 0 0 0 0 0 0 / / 3
fmv. d . x f13 , x5
li x5 , 0 x40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 / / 2
fmv. d . x f14 , x5
li x5 , 0 x3 f f00 0 0 0 0 0 0 0 0 0 0 0 / / 1
fmv. d . x f15 , x5
li x5 , 0 / / 0
fmv. d . x f16 , x5
li x5 , 0 x b f f00 0 0 0 0 0 0 0 0 0 0 0 / / - 1
fmv. d . x f17 , x5
li x5 , 0 x c00 0 0 0 0 0 0 0 0 0 0 0 0 0 / / - 2
fmv. d . x f18 , x5
li x5 , 0 x c00 8 0 0 0 0 0 0 0 0 0 0 0 0 / / - 3
fmv. d . x f19 , x5
li x5 , 0 x c01 0 0 0 0 0 0 0 0 0 0 0 0 0 / / - 4
fmv. d . x f20 , x5
li x5 , 0 x c01 4 0 0 0 0 0 0 0 0 0 0 0 0 / / - 5
fmv. d . x f21 , x5
li x5 , 0 x c01 8 0 0 0 0 0 0 0 0 0 0 0 0 / / - 6
fmv. d . x f22 , x5
li x5 , 0 x c01 c00 0 0 0 0 0 0 0 0 0 0 / / - 7
fmv. d . x f23 , x5
li x5 , 0 x c02 0 0 0 0 0 0 0 0 0 0 0 0 0 / / - 8
fmv. d . x f24 , x5
li x5 , 0 x c02 2 0 0 0 0 0 0 0 0 0 0 0 0 / / - 9
fmv. d . x f25 , x5
li x5 , 0 x c02 4 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 0
fmv. d . x f26 , x5
li x5 , 0 x C 0 2 6 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 1
fmv. d . x f27 , x5
li x5 , 0 x C 0 2 8 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 2
fmv. d . x f28 , x5
li x5 , 0 x C 0 2 A 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 3
fmv. d . x f29 , x5
li x5 , 0 x C 0 2 C 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 4
fmv. d . x f30 , x5
li x5 , 0 x C 0 2 E 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 5
fmv. d . x f31 , x5
# endif
Reg2_loop :
@ -246,12 +507,145 @@ Reg2_loop:
li x5 , 0 x2 f
bne x5 , x31 , r e g 2 _ e r r o r _ l o o p
# endif
# if _ _ r i s c v _ f l e n = = 6 4
li x5 , 0 x40 2 E 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 5
fmv. d . x f0 , x5
feq. d x5 , f1 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x40 2 C 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 4
fmv. d . x f0 , x5
feq. d x5 , f2 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x40 2 a00 0 0 0 0 0 0 0 0 0 0 / / 1 3
fmv. d . x f0 , x5
feq. d x5 , f3 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x40 2 8 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 2
fmv. d . x f0 , x5
feq. d x5 , f4 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x40 2 6 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 1
fmv. d . x f0 , x5
feq. d x5 , f5 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x40 2 4 0 0 0 0 0 0 0 0 0 0 0 0 / / 1 0
fmv. d . x f0 , x5
feq. d x5 , f6 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x40 2 2 0 0 0 0 0 0 0 0 0 0 0 0 / / 9
fmv. d . x f0 , x5
feq. d x5 , f7 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x40 2 0 0 0 0 0 0 0 0 0 0 0 0 0 / / 8
fmv. d . x f0 , x5
feq. d x5 , f8 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x40 1 c00 0 0 0 0 0 0 0 0 0 0 / / 7
fmv. d . x f0 , x5
feq. d x5 , f9 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x40 1 8 0 0 0 0 0 0 0 0 0 0 0 0 / / 6
fmv. d . x f0 , x5
feq. d x5 , f10 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x40 1 4 0 0 0 0 0 0 0 0 0 0 0 0 / / 5
fmv. d . x f0 , x5
feq. d x5 , f11 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x40 1 0 0 0 0 0 0 0 0 0 0 0 0 0 / / 4
fmv. d . x f0 , x5
feq. d x5 , f12 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x40 0 8 0 0 0 0 0 0 0 0 0 0 0 0 / / 3
fmv. d . x f0 , x5
feq. d x5 , f13 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 / / 2
fmv. d . x f0 , x5
feq. d x5 , f14 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x3 f f00 0 0 0 0 0 0 0 0 0 0 0 / / 1
fmv. d . x f0 , x5
feq. d x5 , f15 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 / / 0
fmv. d . x f0 , x5
feq. d x5 , f16 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x b f f00 0 0 0 0 0 0 0 0 0 0 0 / / - 1
fmv. d . x f0 , x5
feq. d x5 , f17 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x c00 0 0 0 0 0 0 0 0 0 0 0 0 0 / / - 2
fmv. d . x f0 , x5
feq. d x5 , f18 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x c00 8 0 0 0 0 0 0 0 0 0 0 0 0 / / - 3
fmv. d . x f0 , x5
feq. d x5 , f19 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x c01 0 0 0 0 0 0 0 0 0 0 0 0 0 / / - 4
fmv. d . x f0 , x5
feq. d x5 , f20 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x c01 4 0 0 0 0 0 0 0 0 0 0 0 0 / / - 5
fmv. d . x f0 , x5
feq. d x5 , f21 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x c01 8 0 0 0 0 0 0 0 0 0 0 0 0 / / - 6
fmv. d . x f0 , x5
feq. d x5 , f22 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x c01 c00 0 0 0 0 0 0 0 0 0 0 / / - 7
fmv. d . x f0 , x5
feq. d x5 , f23 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x c02 0 0 0 0 0 0 0 0 0 0 0 0 0 / / - 8
fmv. d . x f0 , x5
feq. d x5 , f24 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x c02 2 0 0 0 0 0 0 0 0 0 0 0 0 / / - 9
fmv. d . x f0 , x5
feq. d x5 , f25 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x c02 4 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 0
fmv. d . x f0 , x5
feq. d x5 , f26 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x C 0 2 6 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 1
fmv. d . x f0 , x5
feq. d x5 , f27 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x C 0 2 8 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 2
fmv. d . x f0 , x5
feq. d x5 , f28 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x C 0 2 A 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 3
fmv. d . x f0 , x5
feq. d x5 , f29 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x C 0 2 C 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 4
fmv. d . x f0 , x5
feq. d x5 , f30 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
li x5 , 0 x C 0 2 E 0 0 0 0 0 0 0 0 0 0 0 0 / / - 1 5
fmv. d . x f0 , x5
feq. d x5 , f31 , f0
beqz x5 , r e g 2 _ e r r o r _ l o o p
# endif
/* Everything passed, increment the loop counter. */
# if _ _ r i s c v _ x l e n = = 6 4
ld x5 , u l R e g T e s t 2 L o o p C o u n t e r C o n s t
ld x6 , 0 ( x5 )
addi x6 , x6 , 1
sd x6 , 0 ( x5 )
# else
lw x5 , u l R e g T e s t 2 L o o p C o u n t e r C o n s t
lw x6 , 0 ( x5 )
addi x6 , x6 , 1
sw x6 , 0 ( x5 )
# endif
/* Restore clobbered register reading for next loop. */
li x6 , 0 x61
@ -263,5 +657,5 @@ reg2_error_loop:
/* Busy loop which holds the task. */
jal r e g 2 _ e r r o r _ l o o p
.align ( 4 )
ulRegTest2LoopCounterConst : . word u l R e g T e s t 2 LoopCounter
.align ( 8 )
ulRegTest2LoopCounterConst : . d word u l R e g T e s t 2 LoopCounter