File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / d / macro4 / cmpf.lst
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Sun Jul 28 12:30:56 2019 UTC (6 years, 11 months ago) by root
Branches: bsd, MAIN
CVS tags: v121, HEAD
Power 6/32 Unix version 1.21

   1  00000000                                  LL0:
   2  00000000                                  	.data
   3  00000c8c *                                	.text
   4  00000000                                  	.align	1
   5  00000000                                  	.globl	_cmpf
   6  00000000                                  _cmpf:
   7  000123B8    0000                          	.word	L215
   8  000123BA                                   # #include "fpp_defs.h"
   9  000123BA                                   # 
  10  000123BA                                   # 
  11  000123BA                                   # 
  12  000123BA                                   # /***************************************************************************
  13  000123BA                                   # *
  14  000123BA                                   # *       CMPF  -COMPARE SGL ACCUMULATOR TO SGL OPERAND
  15  000123BA                                   # *
  16  000123BA                                   # *****************************************************************************/
  17  000123BA                                   # cmpf()
  18  000123BA                                   # {
  19  000123BA    11 57                         	jbr 	L217
  20  000123BC                                  L218:
  21  000123BC                                   #         asm(".globl _cmpf_t");
  22  000123BC                                  .globl _cmpf_t
  23  000123BC                                   #         asm("_cmpf_t:");                        /* entry address            */
  24  000123BC                                  _cmpf_t:
  25  000123BC                                   #         if( ( cycle == 1 ) && ( prt_hdrs ) )    /* print headers on 1st pass */
  26  000123BC    1d effffffff6 01              	cmpl	_cycle,$1
  27  000123C3    21 15                         	jneq	L219
  28  000123C5    5d efffffffed                 	tstl	_prt_hdrs
  29  000123CB    31 0d                         	jeql	L219
  30  000123CD                                   #         {
  31  000123CD                                   #            writes(" CMPF");
  32  000123CD                                  	.data	1
  33  00000c8c *                                L221:
  34  00000c8c *  20434D504600                  	.ascii	" CMPF\0"
  35  00000c92 *                                	.text
  36  000123CD    dd 8f00000c8c                 	pushl	$L221
  37  000123D3    fe 08 efffffffde              	callf	$8,_writes
  38  000123DA                                   #         }
  39  000123DA                                   #         cmpf_1();                               /* test via registers         */
  40  000123DA                                  L219:
  41  000123DA    fe 04 ef00000035              	callf	$4,_cmpf_1
  42  000123E1                                   #         cmpf_2();                               /* test via cache             */
  43  000123E1    fe 04 ef00000248              	callf	$4,_cmpf_2
  44  000123E8                                   #         cmpf_3();                               /* register corruption test   */
  45  000123E8    fe 04 ef00000455              	callf	$4,_cmpf_3
  46  000123EF                                   #         cmpf_4();                               /* acc. corruption test       */
  47  000123EF    fe 04 ef00000628              	callf	$4,_cmpf_4
  48  000123F6                                   # 	if( !no_fpp_wcs ) {
  49  000123F6    5d efffffffbc                 	tstl	_no_fpp_wcs
  50  000123FC    21 0e                         	jneq	L226
  51  000123FE                                   #              cmpf_5();                          /* pipelined entry test       */
  52  000123FE    fe 04 ef000007a3              	callf	$4,_cmpf_5
  53  00012405                                   #              cmpf_6();                          /* pipelined exit test        */
  54  00012405    fe 04 ef000009b6              	callf	$4,_cmpf_6
  55  0001240C                                   #         };
  56  0001240C                                  L226:
  57  0001240C                                   # 	asm("jmp *return");                     /* return to the test monitor */
  58  0001240C    71 ffffffffa6                 jmp *return
  59  00012412                                   # }
  60  00012412    40                            	ret#2
  61  00012413                                  	.set	L215,0x0
  62  00012413                                  L217:
  63  00012413    11 a7                         	jbr 	L218
  64  00012415                                  	.data
  65  00000c8c *                                	.text
  66  00012415    00                            	.align	1
  67  00012416                                  	.globl	_cmpf_1
  68  00012416                                  _cmpf_1:
  69  00012416    0000                          	.word	L229
  70  00012418                                   #   
  71  00012418                                   # 
  72  00012418                                   # 
  73  00012418                                   # /****************************************************************************
  74  00012418                                   # *
  75  00012418                                   # *               SUBTEST 1 - CMPF status test  -register data
  76  00012418                                   # *
  77  00012418                                   # ****************************************************************************/
  78  00012418                                   # cmpf_1() 
  79  00012418                                   # {
  80  00012418    13 0212                       	jbr 	L231
  81  0001241B                                  L232:
  82  0001241B                                   #         force_loop = FALSE;
  83  0001241B    4d efffffff97                 	clrl	_force_loop
  84  00012421                                   #         subtest = 1;
  85  00012421    0d 01 efffffff90              	movl	$1,_subtest
  86  00012428                                   # 	index = 0;
  87  00012428    4d efffffff8a                 	clrl	_index
  88  0001242E                                   #         do 
  89  0001242E                                  L235:
  90  0001242E                                   #         {
  91  0001242E                                   #            sgl_value_1  = cmpf_1_data[index].one; /* get the data operands  */
  92  0001242E    5c 0c efffffff83 50           	mull3	$12,_index,r0
  93  00012436    0d e000000000 efffffff77      	movl	_cmpf_1_data(r0),_sgl_value_1
  94  00012441                                   #            sgl_value_2  = cmpf_1_data[index].two;
  95  00012441    5c 0c efffffff70 50           	mull3	$12,_index,r0
  96  00012449    0d e000000004 efffffff64      	movl	_cmpf_1_data+4(r0),_sgl_value_2
  97  00012454                                   #            sgl_expected = cmpf_1_data[index].flag; /* get expected results */
  98  00012454    5c 0c efffffff5d 50           	mull3	$12,_index,r0
  99  0001245C    0d e000000008 efffffff51      	movl	_cmpf_1_data+8(r0),_sgl_expected
 100  00012467                                   #            status_index = 0;	                   /* clear the status index */
 101  00012467    4d efffffff4b                 	clrl	_status_index
 102  0001246D                                   #            do
 103  0001246D                                  L238:
 104  0001246D                                   #            {
 105  0001246D                                   #                sgl_dummy1 = status_array[status_index]; /* array = +, -, 0  */
 106  0001246D    0d efffffff45 50              	movl	_status_index,r0
 107  00012474    0d 40efffffff3d               	movl	_status_array[r0],_sgl_dummy1
                  efffffff38 
 108  00012480                                   # /*
 109  00012480                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 110  00012480                                   #  * The force loop flag is set after the first error.
 111  00012480                                   # */
 112  00012480                                   #                asm("_cmpf_1_lp1:");
 113  00012480                                  _cmpf_1_lp1:
 114  00012480                                   #                asm("movl _sgl_value_1,r4");     /* move operand #1 to r4    */
 115  00012480    0d efffffff32 54              movl _sgl_value_1,r4
 116  00012487                                   #                asm("movl _sgl_value_2,r5");     /* move operand #2 to r5    */
 117  00012487    0d efffffff2b 55              movl _sgl_value_2,r5
 118  0001248E                                   #                asm("ldf r4");                   /* load the 1st operand     */
 119  0001248E    06 54                         ldf r4
 120  00012490                                   #                asm("tstl _sgl_dummy1");         /* generate initial status  */
 121  00012490    5d efffffff22                 tstl _sgl_dummy1
 122  00012496                                   #                asm("movpsl _init_psl");         /* save the initial status  */
 123  00012496    cd efffffff1c                 movpsl _init_psl
 124  0001249C                                   #                asm("cmpf r5");                  /* compare the operands     */
 125  0001249C    36 55                         cmpf r5
 126  0001249E                                   #                asm("movpsl _psl_val");          /* save the final status    */
 127  0001249E    cd efffffff14                 movpsl _psl_val
 128  000124A4                                   #                asm("stf _sgl_st_acc");          /* save the final acc       */
 129  000124A4    26 efffffff0e                 stf _sgl_st_acc
 130  000124AA                                   #                if( force_loop )                 /* loop?                    */
 131  000124AA    5d efffffff08                 	tstl	_force_loop
 132  000124B0    31 02                         	jeql	L239
 133  000124B2                                   #                    asm("brb _cmpf_1_lp1");;     /* run the loop again       */
 134  000124B2    11 cc                         brb _cmpf_1_lp1
 135  000124B4                                  L239:
 136  000124B4                                   #                exp_psl = init_psl;              /* get the initial PSL      */
 137  000124B4    0d effffffefe effffffef9      	movl	_init_psl,_exp_psl
 138  000124BF                                   #                exp_psl &= 0xfffffff3;           /* clear ZERO, NEGATIVE     */
 139  000124BF    ac 88f3 effffffef1            	andl2	$-13,_exp_psl
 140  000124C7                                   #                if( sgl_expected == ZERO )
 141  000124C7    1d effffffeeb 04              	cmpl	_sgl_expected,$4
 142  000124CE    21 07                         	jneq	L240
 143  000124D0                                   #                    exp_psl |= PSL_Z;            /* expect the ZERO bit set  */
 144  000124D0    8c 04 effffffee1              	orl2	$4,_exp_psl
 145  000124D7                                   #                if( sgl_expected == NEGATIVE )
 146  000124D7                                  L240:
 147  000124D7    1d effffffedb 08              	cmpl	_sgl_expected,$8
 148  000124DE    21 07                         	jneq	L241
 149  000124E0                                   #                    exp_psl |= PSL_N;            /* expect the NEG bit set   */
 150  000124E0    8c 08 effffffed1              	orl2	$8,_exp_psl
 151  000124E7                                   #                if( psl_val != exp_psl )   {     /* COMPARE the values       */
 152  000124E7                                  L241:
 153  000124E7    1d effffffecb effffffec6      	cmpl	_psl_val,_exp_psl
 154  000124F2    21 03 13 0107                 	jeql	L242
 155  000124F7                                   #                   errcnt++;                     /* bump the error count     */
 156  000124F7    6d effffffebb                 	incl	_errcnt
 157  000124FD                                   #                   if ( prt_error ) {
 158  000124FD    5d effffffeb5                 	tstl	_prt_error
 159  00012503    21 03 13 00d3                 	jeql	L243
 160  00012508                                   #                      writes(" \n");      /* start a new print line   */
 161  00012508                                  	.data	1
 162  00000c92 *                                L244:
 163  00000c92 *  200A00                        	.ascii	" \12\0"
 164  00000c95 *                                	.text
 165  00012508    dd 8f00000c92                 	pushl	$L244
 166  0001250E    fe 08 effffffea3              	callf	$8,_writes
 167  00012515                                   #                      writes("cycle: ");
 168  00012515                                  	.data	1
 169  00000c95 *                                L245:
 170  00000c95 *  6379636C653A2000              	.ascii	"cycle: \0"
 171  00000c9d *                                	.text
 172  00012515    dd 8f00000c95                 	pushl	$L245
 173  0001251B    fe 08 effffffe96              	callf	$8,_writes
 174  00012522                                   #                      writed( cycle );
 175  00012522    dd effffffe90                 	pushl	_cycle
 176  00012528    fe 08 effffffe89              	callf	$8,_writed
 177  0001252F                                   #                      writes("  CMPF test ");
 178  0001252F                                  	.data	1
 179  00000c9d *                                L247:
 180  00000c9d *  2020434D50462074657374200     	.ascii	"  CMPF test \0"
                  0
 181  00000caa *                                	.text
 182  0001252F    dd 8f00000c9d                 	pushl	$L247
 183  00012535    fe 08 effffffe7c              	callf	$8,_writes
 184  0001253C                                   # 		     writed( test_no );
 185  0001253C    dd effffffe76                 	pushl	_test_no
 186  00012542    fe 08 effffffe6f              	callf	$8,_writed
 187  00012549                                   # 		     writes(", subtest 1 (Reg. Data) - BAD FINAL PSL\n");
 188  00012549                                  	.data	1
 189  00000caa *                                L248:
 190  00000caa *  2C20737562746573742031202     	.ascii	", subtest 1 (Reg. Data) - BAD FINAL PSL\12\0"
                  85265672E204461746129202D
                  204241442046494E414C20505
                  34C0A00
 191  00000cd3 *                                	.text
 192  00012549    dd 8f00000caa                 	pushl	$L248
 193  0001254F    fe 08 effffffe62              	callf	$8,_writes
 194  00012556                                   #                      print_cmpf_data();
 195  00012556    fe 04 ef000009fb              	callf	$4,_print_cmpf_data
 196  0001255D                                   #                      writes(",  data index = ");
 197  0001255D                                  	.data	1
 198  00000cd3 *                                L250:
 199  00000cd3 *  2C20206461746120696E64657     	.ascii	",  data index = \0"
                  8203D2000
 200  00000ce4 *                                	.text
 201  0001255D    dd 8f00000cd3                 	pushl	$L250
 202  00012563    fe 08 effffffe4e              	callf	$8,_writes
 203  0001256A                                   #                      writed( index );
 204  0001256A    dd effffffe48                 	pushl	_index
 205  00012570    fe 08 effffffe41              	callf	$8,_writed
 206  00012577                                   #                      writec('\n');
 207  00012577    dd 0a                         	pushl	$10
 208  00012579    fe 08 effffffe38              	callf	$8,_writec
 209  00012580                                   #                      writes("initial PSL = ");
 210  00012580                                  	.data	1
 211  00000ce4 *                                L252:
 212  00000ce4 *  696E697469616C2050534C203     	.ascii	"initial PSL = \0"
                  D2000
 213  00000cf3 *                                	.text
 214  00012580    dd 8f00000ce4                 	pushl	$L252
 215  00012586    fe 08 effffffe2b              	callf	$8,_writes
 216  0001258D                                   #                      write32h( init_psl );
 217  0001258D    dd effffffe25                 	pushl	_init_psl
 218  00012593    fe 08 effffffe1e              	callf	$8,_write32h
 219  0001259A                                   #                      writes(", final PSL = ");
 220  0001259A                                  	.data	1
 221  00000cf3 *                                L254:
 222  00000cf3 *  2C2066696E616C2050534C203     	.ascii	", final PSL = \0"
                  D2000
 223  00000d02 *                                	.text
 224  0001259A    dd 8f00000cf3                 	pushl	$L254
 225  000125A0    fe 08 effffffe11              	callf	$8,_writes
 226  000125A7                                   #                      write32h( psl_val );
 227  000125A7    dd effffffe0b                 	pushl	_psl_val
 228  000125AD    fe 08 effffffe04              	callf	$8,_write32h
 229  000125B4                                   #                      writes(", expected PSL = ");
 230  000125B4                                  	.data	1
 231  00000d02 *                                L255:
 232  00000d02 *  2C20657870656374656420505     	.ascii	", expected PSL = \0"
                  34C203D2000
 233  00000d14 *                                	.text
 234  000125B4    dd 8f00000d02                 	pushl	$L255
 235  000125BA    fe 08 effffffdf7              	callf	$8,_writes
 236  000125C1                                   #                      write32h( exp_psl );
 237  000125C1    dd effffffdf1                 	pushl	_exp_psl
 238  000125C7    fe 08 effffffdea              	callf	$8,_write32h
 239  000125CE                                   #                      writes("\n");
 240  000125CE                                  	.data	1
 241  00000d14 *                                L256:
 242  00000d14 *  0A00                          	.ascii	"\12\0"
 243  00000d16 *                                	.text
 244  000125CE    dd 8f00000d14                 	pushl	$L256
 245  000125D4    fe 08 effffffddd              	callf	$8,_writes
 246  000125DB                                   #                   }
 247  000125DB                                   #                   if ( halt_flg )
 248  000125DB                                  L243:
 249  000125DB    5d effffffdd7                 	tstl	_halt_flg
 250  000125E1    31 09                         	jeql	L257
 251  000125E3                                   #                      cmpf_er_halt( BAD_PSL_HLT ); /* halt on the error      */
 252  000125E3    dd 03                         	pushl	$3
 253  000125E5    fe 08 ef000009a8              	callf	$8,_cmpf_er_halt
 254  000125EC                                   #                   if ( loop_on_err ) {
 255  000125EC                                  L257:
 256  000125EC    5d effffffdc6                 	tstl	_loop_on_err
 257  000125F2    31 0a                         	jeql	L259
 258  000125F4                                   #                      force_loop = TRUE;         /* set the force loop flag */
 259  000125F4    0d 01 effffffdbd              	movl	$1,_force_loop
 260  000125FB                                   #                      asm("brw _cmpf_1_lp1");    /* and loop on the error   */
 261  000125FB    13 fe82                       brw _cmpf_1_lp1
 262  000125FE                                   #                   }   /* end of loop on error    */
 263  000125FE                                   #                }   /* end of compare error    */
 264  000125FE                                  L259:
 265  000125FE                                   #             }  while ( ++status_index < 3 ); /* end of PSL WHILE loop */
 266  000125FE                                  L242:
 267  000125FE                                  L237:
 268  000125FE    6d effffffdb4                 	incl	_status_index
 269  00012604    0d effffffdae 50              	movl	_status_index,r0
 270  0001260B    1d 50 03                      	cmpl	r0,$3
 271  0001260E    81 03 13 fe5a                 	jlss	L238
 272  00012613                                  L236:
 273  00012613                                   #         } while( index++ < max_cmpf_1_index);/* end of data loop      */
 274  00012613                                  L234:
 275  00012613    0d effffffd9f 50              	movl	_index,r0
 276  0001261A    6d effffffd98                 	incl	_index
 277  00012620    1d 50 effffffd91              	cmpl	r0,_max_cmpf_1_index
 278  00012627    81 03 13 fe02                 	jlss	L235
 279  0001262C                                  L233:
 280  0001262C                                   # }  /* end of subtest 1 */
 281  0001262C    40                            	ret#2
 282  0001262D                                  	.set	L229,0x0
 283  0001262D                                  L231:
 284  0001262D    13 fdeb                       	jbr 	L232
 285  00012630                                  	.data
 286  00000c8c *                                	.text
 287  00012630                                  	.align	1
 288  00012630                                  	.globl	_cmpf_2
 289  00012630                                  _cmpf_2:
 290  00012630    0000                          	.word	L260
 291  00012632                                   #   
 292  00012632                                   # 
 293  00012632                                   # 
 294  00012632                                   # /****************************************************************************
 295  00012632                                   # *
 296  00012632                                   # *               SUBTEST 2 - CMPF status test  -cache data
 297  00012632                                   # *
 298  00012632                                   # ****************************************************************************/
 299  00012632                                   # cmpf_2() 
 300  00012632                                   # {
 301  00012632    13 020c                       	jbr 	L262
 302  00012635                                  L263:
 303  00012635                                   #         force_loop = FALSE; 
 304  00012635    4d effffffd7d                 	clrl	_force_loop
 305  0001263B                                   # 	subtest = 2;
 306  0001263B    0d 02 effffffd76              	movl	$2,_subtest
 307  00012642                                   # 	index = 0;
 308  00012642    4d effffffd70                 	clrl	_index
 309  00012648                                   #         do 
 310  00012648                                  L266:
 311  00012648                                   #         {
 312  00012648                                   #            sgl_value_1  = cmpf_1_data[index].one; /* get the data operands  */
 313  00012648    5c 0c effffffd69 50           	mull3	$12,_index,r0
 314  00012650    0d e000000000 effffffd5d      	movl	_cmpf_1_data(r0),_sgl_value_1
 315  0001265B                                   #            sgl_value_2  = cmpf_1_data[index].two;
 316  0001265B    5c 0c effffffd56 50           	mull3	$12,_index,r0
 317  00012663    0d e000000004 effffffd4a      	movl	_cmpf_1_data+4(r0),_sgl_value_2
 318  0001266E                                   #            sgl_expected = cmpf_1_data[index].flag;/* get expected results */
 319  0001266E    5c 0c effffffd43 50           	mull3	$12,_index,r0
 320  00012676    0d e000000008 effffffd37      	movl	_cmpf_1_data+8(r0),_sgl_expected
 321  00012681                                   #            status_index = 0;                      /* clear the status index */
 322  00012681    4d effffffd31                 	clrl	_status_index
 323  00012687                                   #            do
 324  00012687                                  L269:
 325  00012687                                   #            {
 326  00012687                                   #                sgl_dummy1 = status_array[status_index]; /* array = +, -, 0  */
 327  00012687    0d effffffd2b 50              	movl	_status_index,r0
 328  0001268E    0d 40effffffd23               	movl	_status_array[r0],_sgl_dummy1
                  effffffd1e 
 329  0001269A                                   # /*
 330  0001269A                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 331  0001269A                                   #  * The force loop flag is set after the first error.
 332  0001269A                                   # */
 333  0001269A                                   #                asm("_cmpf_2_lp1:");
 334  0001269A                                  _cmpf_2_lp1:
 335  0001269A                                   #                asm("ldf _sgl_value_1");         /* load the 1st operand     */
 336  0001269A    06 effffffd18                 ldf _sgl_value_1
 337  000126A0                                   #                asm("tstl _sgl_dummy1");         /* generate initial status  */
 338  000126A0    5d effffffd12                 tstl _sgl_dummy1
 339  000126A6                                   #                asm("movpsl _init_psl");         /* save the initial status  */
 340  000126A6    cd effffffd0c                 movpsl _init_psl
 341  000126AC                                   #                asm("cmpf _sgl_value_2");        /* compare the operands     */
 342  000126AC    36 effffffd06                 cmpf _sgl_value_2
 343  000126B2                                   #                asm("movpsl _psl_val");          /* save the final status    */
 344  000126B2    cd effffffd00                 movpsl _psl_val
 345  000126B8                                   #                asm("stf _sgl_st_acc");          /* save the final acc       */
 346  000126B8    26 effffffcfa                 stf _sgl_st_acc
 347  000126BE                                   #                if( force_loop )                 /* loop?                    */
 348  000126BE    5d effffffcf4                 	tstl	_force_loop
 349  000126C4    31 02                         	jeql	L270
 350  000126C6                                   #                    asm("brb _cmpf_2_lp1");;     /* run the loop again       */
 351  000126C6    11 d2                         brb _cmpf_2_lp1
 352  000126C8                                  L270:
 353  000126C8                                   #                exp_psl = init_psl;              /* get the initial PSL      */
 354  000126C8    0d effffffcea effffffce5      	movl	_init_psl,_exp_psl
 355  000126D3                                   #                exp_psl &= 0xfffffff3;           /* clear ZERO, NEGATIVE     */
 356  000126D3    ac 88f3 effffffcdd            	andl2	$-13,_exp_psl
 357  000126DB                                   #                if( sgl_expected == ZERO )
 358  000126DB    1d effffffcd7 04              	cmpl	_sgl_expected,$4
 359  000126E2    21 07                         	jneq	L271
 360  000126E4                                   #                    exp_psl |= PSL_Z;            /* expect the ZERO bit set  */
 361  000126E4    8c 04 effffffccd              	orl2	$4,_exp_psl
 362  000126EB                                   #                if( sgl_expected == NEGATIVE )
 363  000126EB                                  L271:
 364  000126EB    1d effffffcc7 08              	cmpl	_sgl_expected,$8
 365  000126F2    21 07                         	jneq	L272
 366  000126F4                                   #                    exp_psl |= PSL_N;            /* expect the NEG bit set   */
 367  000126F4    8c 08 effffffcbd              	orl2	$8,_exp_psl
 368  000126FB                                   #                if( psl_val != exp_psl ) {       /* COMPARE the values       */
 369  000126FB                                  L272:
 370  000126FB    1d effffffcb7 effffffcb2      	cmpl	_psl_val,_exp_psl
 371  00012706    21 03 13 0107                 	jeql	L273
 372  0001270B                                   #                   errcnt++;                     /* bump the error count     */
 373  0001270B    6d effffffca7                 	incl	_errcnt
 374  00012711                                   #                   if ( prt_error ) {
 375  00012711    5d effffffca1                 	tstl	_prt_error
 376  00012717    21 03 13 00d3                 	jeql	L274
 377  0001271C                                   #                      writes(" \n");      /* start a new print line   */
 378  0001271C                                  	.data	1
 379  00000d16 *                                L275:
 380  00000d16 *  200A00                        	.ascii	" \12\0"
 381  00000d19 *                                	.text
 382  0001271C    dd 8f00000d16                 	pushl	$L275
 383  00012722    fe 08 effffffc8f              	callf	$8,_writes
 384  00012729                                   #                      writes("cycle: ");
 385  00012729                                  	.data	1
 386  00000d19 *                                L276:
 387  00000d19 *  6379636C653A2000              	.ascii	"cycle: \0"
 388  00000d21 *                                	.text
 389  00012729    dd 8f00000d19                 	pushl	$L276
 390  0001272F    fe 08 effffffc82              	callf	$8,_writes
 391  00012736                                   #                      writed( cycle );
 392  00012736    dd effffffc7c                 	pushl	_cycle
 393  0001273C    fe 08 effffffc75              	callf	$8,_writed
 394  00012743                                   #                      writes("  CMPF test ");
 395  00012743                                  	.data	1
 396  00000d21 *                                L277:
 397  00000d21 *  2020434D50462074657374200     	.ascii	"  CMPF test \0"
                  0
 398  00000d2e *                                	.text
 399  00012743    dd 8f00000d21                 	pushl	$L277
 400  00012749    fe 08 effffffc68              	callf	$8,_writes
 401  00012750                                   # 		     writed( test_no );
 402  00012750    dd effffffc62                 	pushl	_test_no
 403  00012756    fe 08 effffffc5b              	callf	$8,_writed
 404  0001275D                                   # 		     writes(", subtest 2 (Cache Data) - BAD FINAL PSL\n");
 405  0001275D                                  	.data	1
 406  00000d2e *                                L278:
 407  00000d2e *  2C20737562746573742032202     	.ascii	", subtest 2 (Cache Data) - BAD FINAL PSL\12\0"
                  8436163686520446174612920
                  2D204241442046494E414C205
                  0534C0A00
 408  00000d58 *                                	.text
 409  0001275D    dd 8f00000d2e                 	pushl	$L278
 410  00012763    fe 08 effffffc4e              	callf	$8,_writes
 411  0001276A                                   #                      print_cmpf_data();
 412  0001276A    fe 04 ef000007e7              	callf	$4,_print_cmpf_data
 413  00012771                                   #                      writes(",  data index = ");
 414  00012771                                  	.data	1
 415  00000d58 *                                L279:
 416  00000d58 *  2C20206461746120696E64657     	.ascii	",  data index = \0"
                  8203D2000
 417  00000d69 *                                	.text
 418  00012771    dd 8f00000d58                 	pushl	$L279
 419  00012777    fe 08 effffffc3a              	callf	$8,_writes
 420  0001277E                                   #                      writed( index );
 421  0001277E    dd effffffc34                 	pushl	_index
 422  00012784    fe 08 effffffc2d              	callf	$8,_writed
 423  0001278B                                   #                      writec('\n');
 424  0001278B    dd 0a                         	pushl	$10
 425  0001278D    fe 08 effffffc24              	callf	$8,_writec
 426  00012794                                   #                      writes("initial PSL = ");
 427  00012794                                  	.data	1
 428  00000d69 *                                L280:
 429  00000d69 *  696E697469616C2050534C203     	.ascii	"initial PSL = \0"
                  D2000
 430  00000d78 *                                	.text
 431  00012794    dd 8f00000d69                 	pushl	$L280
 432  0001279A    fe 08 effffffc17              	callf	$8,_writes
 433  000127A1                                   #                      write32h( init_psl );
 434  000127A1    dd effffffc11                 	pushl	_init_psl
 435  000127A7    fe 08 effffffc0a              	callf	$8,_write32h
 436  000127AE                                   #                      writes(", final PSL = ");
 437  000127AE                                  	.data	1
 438  00000d78 *                                L281:
 439  00000d78 *  2C2066696E616C2050534C203     	.ascii	", final PSL = \0"
                  D2000
 440  00000d87 *                                	.text
 441  000127AE    dd 8f00000d78                 	pushl	$L281
 442  000127B4    fe 08 effffffbfd              	callf	$8,_writes
 443  000127BB                                   #                      write32h( psl_val );
 444  000127BB    dd effffffbf7                 	pushl	_psl_val
 445  000127C1    fe 08 effffffbf0              	callf	$8,_write32h
 446  000127C8                                   #                      writes(", expected PSL = ");
 447  000127C8                                  	.data	1
 448  00000d87 *                                L282:
 449  00000d87 *  2C20657870656374656420505     	.ascii	", expected PSL = \0"
                  34C203D2000
 450  00000d99 *                                	.text
 451  000127C8    dd 8f00000d87                 	pushl	$L282
 452  000127CE    fe 08 effffffbe3              	callf	$8,_writes
 453  000127D5                                   #                      write32h( exp_psl );
 454  000127D5    dd effffffbdd                 	pushl	_exp_psl
 455  000127DB    fe 08 effffffbd6              	callf	$8,_write32h
 456  000127E2                                   #                      writes("\n");
 457  000127E2                                  	.data	1
 458  00000d99 *                                L283:
 459  00000d99 *  0A00                          	.ascii	"\12\0"
 460  00000d9b *                                	.text
 461  000127E2    dd 8f00000d99                 	pushl	$L283
 462  000127E8    fe 08 effffffbc9              	callf	$8,_writes
 463  000127EF                                   #                   }
 464  000127EF                                   #                   if ( halt_flg ) 
 465  000127EF                                  L274:
 466  000127EF    5d effffffbc3                 	tstl	_halt_flg
 467  000127F5    31 09                         	jeql	L284
 468  000127F7                                   #                      cmpf_er_halt( BAD_PSL_HLT );   /* halt on the error   */
 469  000127F7    dd 03                         	pushl	$3
 470  000127F9    fe 08 ef00000794              	callf	$8,_cmpf_er_halt
 471  00012800                                   #                   if ( loop_on_err ) {
 472  00012800                                  L284:
 473  00012800    5d effffffbb2                 	tstl	_loop_on_err
 474  00012806    31 0a                         	jeql	L285
 475  00012808                                   #                      force_loop = TRUE;         /* set the force loop flag */
 476  00012808    0d 01 effffffba9              	movl	$1,_force_loop
 477  0001280F                                   #                      asm("brw _cmpf_2_lp1");    /* and loop on the error   */
 478  0001280F    13 fe88                       brw _cmpf_2_lp1
 479  00012812                                   #                   }   /* end of loop on error    */
 480  00012812                                   #                }  /* end of compare error */
 481  00012812                                  L285:
 482  00012812                                   #             }  while ( ++status_index < 3 ); /* end of PSL WHILE loop */
 483  00012812                                  L273:
 484  00012812                                  L268:
 485  00012812    6d effffffba0                 	incl	_status_index
 486  00012818    0d effffffb9a 50              	movl	_status_index,r0
 487  0001281F    1d 50 03                      	cmpl	r0,$3
 488  00012822    81 03 13 fe60                 	jlss	L269
 489  00012827                                  L267:
 490  00012827                                   #         } while( index++ < max_cmpf_1_index);/* end of data loop      */
 491  00012827                                  L265:
 492  00012827    0d effffffb8b 50              	movl	_index,r0
 493  0001282E    6d effffffb84                 	incl	_index
 494  00012834    1d 50 effffffb7d              	cmpl	r0,_max_cmpf_1_index
 495  0001283B    81 03 13 fe08                 	jlss	L266
 496  00012840                                  L264:
 497  00012840                                   # }  /* end of subtest 2 */
 498  00012840    40                            	ret#2
 499  00012841                                  	.set	L260,0x0
 500  00012841                                  L262:
 501  00012841    13 fdf1                       	jbr 	L263
 502  00012844                                  	.data
 503  00000c8c *                                	.text
 504  00012844                                  	.align	1
 505  00012844                                  	.globl	_cmpf_3
 506  00012844                                  _cmpf_3:
 507  00012844    0000                          	.word	L286
 508  00012846                                   #   
 509  00012846                                   # 
 510  00012846                                   # 
 511  00012846                                   # /************************************************************************
 512  00012846                                   # *
 513  00012846                                   # *       SUBTEST 3 - Check for register corruption
 514  00012846                                   # *
 515  00012846                                   # ************************************************************************/
 516  00012846                                   # cmpf_3() 
 517  00012846                                   # {
 518  00012846    13 01d2                       	jbr 	L288
 519  00012849                                  L289:
 520  00012849                                   #         force_loop = FALSE;                     /* clear force_loop flg   */
 521  00012849    4d effffffb69                 	clrl	_force_loop
 522  0001284F                                   #         subtest = 3;
 523  0001284F    0d 03 effffffb62              	movl	$3,_subtest
 524  00012856                                   # 	fill_reg_buf( load_regs );              /* get pattern for regs   */
 525  00012856    dd 8f00000000                 	pushl	$_load_regs
 526  0001285C    fe 08 effffffb55              	callf	$8,_fill_reg_buf
 527  00012863                                   # 	index = 0;
 528  00012863    4d effffffb4f                 	clrl	_index
 529  00012869                                   #         do 
 530  00012869                                  L293:
 531  00012869                                   #         {
 532  00012869                                   #              sgl_value_1  = cmpf_1_data[index].one;   /* data to load    */
 533  00012869    5c 0c effffffb48 50           	mull3	$12,_index,r0
 534  00012871    0d e000000000 effffffb3c      	movl	_cmpf_1_data(r0),_sgl_value_1
 535  0001287C                                   #              sgl_value_2  = cmpf_1_data[index].two;   /* data to compare */
 536  0001287C    5c 0c effffffb35 50           	mull3	$12,_index,r0
 537  00012884    0d e000000004 effffffb29      	movl	_cmpf_1_data+4(r0),_sgl_value_2
 538  0001288F                                   # /*
 539  0001288F                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 540  0001288F                                   #  * The force loop flag is set after the first error.
 541  0001288F                                   # */
 542  0001288F                                   #              asm("_cmpf_3_lp1:");
 543  0001288F                                  _cmpf_3_lp1:
 544  0001288F                                   #              asm("ldf _sgl_value_1");           /* LOAD the accumulator  */
 545  0001288F    06 effffffb23                 ldf _sgl_value_1
 546  00012895                                   #              asm("nop");
 547  00012895    10                            nop
 548  00012896                                   # 	     asm("loadr $0x1fff,_load_regs");   /* load regs 0 - 12       */
 549  00012896    ab 891fff effffffb19          loadr $0x1fff,_load_regs
 550  0001289F                                   #              asm("nop");
 551  0001289F    10                            nop
 552  000128A0                                   #              asm("cmpf _sgl_value_2");          /* test the values        */
 553  000128A0    36 effffffb12                 cmpf _sgl_value_2
 554  000128A6                                   #              asm("nop");
 555  000128A6    10                            nop
 556  000128A7                                   #              asm("storer $0x1fff,_store_regs"); /* store regs 0 - 12 */
 557  000128A7    bb 891fff effffffb08          storer $0x1fff,_store_regs
 558  000128B0                                   #              asm("stf _sgl_st_acc");            /* save the final acc       */
 559  000128B0    26 effffffb02                 stf _sgl_st_acc
 560  000128B6                                   #              if( force_loop )                   /* loop?                    */
 561  000128B6    5d effffffafc                 	tstl	_force_loop
 562  000128BC    31 02                         	jeql	L294
 563  000128BE                                   #                    asm("brb _cmpf_3_lp1");;     /* run the loop again       */
 564  000128BE    11 cf                         brb _cmpf_3_lp1
 565  000128C0                                  L294:
 566  000128C0                                   # /*
 567  000128C0                                   #  * Now compare the stored register values to those that were loaded
 568  000128C0                                   # */
 569  000128C0                                   #              index2 = 0;
 570  000128C0    4d effffffaf2                 	clrl	_index2
 571  000128C6                                   #              while( (load_regs[index2] == store_regs[index2]) && (index2 < 13) )
 572  000128C6                                  L295:
 573  000128C6    0d effffffaec 50              	movl	_index2,r0
 574  000128CD    0d effffffae5 51              	movl	_index2,r1
 575  000128D4    1d 40effffffadd               	cmpl	_load_regs[r0],_store_regs[r1]
                  41effffffad7 
 576  000128E1    21 11                         	jneq	L296
 577  000128E3    1d effffffacf 0d              	cmpl	_index2,$13
 578  000128EA    81 08                         	jgeq	L296
 579  000128EC                                   #                   index2++;                     /* check reg values */
 580  000128EC    6d effffffac6                 	incl	_index2
 581  000128F2    11 d2                         	jbr 	L295
 582  000128F4                                  L296:
 583  000128F4                                   #              if( index2 < 13 )  {               /* error if index2 < 13 */
 584  000128F4    1d effffffabe 0d              	cmpl	_index2,$13
 585  000128FB    91 03 13 0101                 	jgeq	L297
 586  00012900                                   #                   errcnt++;                     /* bump the error count */
 587  00012900    6d effffffab2                 	incl	_errcnt
 588  00012906                                   #                   if ( prt_error ) {
 589  00012906    5d effffffaac                 	tstl	_prt_error
 590  0001290C    21 03 13 00cd                 	jeql	L298
 591  00012911                                   #                        writes(" \n");      /* start a new print line   */
 592  00012911                                  	.data	1
 593  00000d9b *                                L299:
 594  00000d9b *  200A00                        	.ascii	" \12\0"
 595  00000d9e *                                	.text
 596  00012911    dd 8f00000d9b                 	pushl	$L299
 597  00012917    fe 08 effffffa9a              	callf	$8,_writes
 598  0001291E                                   #                        writes("cycle: ");
 599  0001291E                                  	.data	1
 600  00000d9e *                                L300:
 601  00000d9e *  6379636C653A2000              	.ascii	"cycle: \0"
 602  00000da6 *                                	.text
 603  0001291E    dd 8f00000d9e                 	pushl	$L300
 604  00012924    fe 08 effffffa8d              	callf	$8,_writes
 605  0001292B                                   #                        writed( cycle );
 606  0001292B    dd effffffa87                 	pushl	_cycle
 607  00012931    fe 08 effffffa80              	callf	$8,_writed
 608  00012938                                   #                        writes(", CMPF test ");
 609  00012938                                  	.data	1
 610  00000da6 *                                L301:
 611  00000da6 *  2C20434D50462074657374200     	.ascii	", CMPF test \0"
                  0
 612  00000db3 *                                	.text
 613  00012938    dd 8f00000da6                 	pushl	$L301
 614  0001293E    fe 08 effffffa73              	callf	$8,_writes
 615  00012945                                   # 		       writed( test_no );
 616  00012945    dd effffffa6d                 	pushl	_test_no
 617  0001294B    fe 08 effffffa66              	callf	$8,_writed
 618  00012952                                   # 	writes(", subtest 3 - A REGISTER WAS MODIFIED\n");
 619  00012952                                  	.data	1
 620  00000db3 *                                L302:
 621  00000db3 *  2C20737562746573742033202     	.ascii	", subtest 3 - A REGISTER WAS MODIFIED\12\0"
                  D204120524547495354455220
                  574153204D4F4449464945440
                  A00
 622  00000dda *                                	.text
 623  00012952    dd 8f00000db3                 	pushl	$L302
 624  00012958    fe 08 effffffa59              	callf	$8,_writes
 625  0001295F                                   #                        print_cmpf_data();       /* print the operands      */
 626  0001295F    fe 04 ef000005f2              	callf	$4,_print_cmpf_data
 627  00012966                                   #                        writes("\n");
 628  00012966                                  	.data	1
 629  00000dda *                                L303:
 630  00000dda *  0A00                          	.ascii	"\12\0"
 631  00000ddc *                                	.text
 632  00012966    dd 8f00000dda                 	pushl	$L303
 633  0001296C    fe 08 effffffa45              	callf	$8,_writes
 634  00012973                                   #                        writes("register ");     /* print the information   */
 635  00012973                                  	.data	1
 636  00000ddc *                                L304:
 637  00000ddc *  72656769737465722000          	.ascii	"register \0"
 638  00000de6 *                                	.text
 639  00012973    dd 8f00000ddc                 	pushl	$L304
 640  00012979    fe 08 effffffa38              	callf	$8,_writes
 641  00012980                                   #                        writed( index2 );        /*    about the corrupted  */
 642  00012980    dd effffffa32                 	pushl	_index2
 643  00012986    fe 08 effffffa2b              	callf	$8,_writed
 644  0001298D                                   #                        writes(" = ");           /*        register         */
 645  0001298D                                  	.data	1
 646  00000de6 *                                L305:
 647  00000de6 *  203D2000                      	.ascii	" = \0"
 648  00000dea *                                	.text
 649  0001298D    dd 8f00000de6                 	pushl	$L305
 650  00012993    fe 08 effffffa1e              	callf	$8,_writes
 651  0001299A                                   #                        write32h( store_regs[index2] );
 652  0001299A    0d effffffa18 50              	movl	_index2,r0
 653  000129A1    dd 40effffffa10               	pushl	_store_regs[r0]
 654  000129A8    fe 08 effffffa09              	callf	$8,_write32h
 655  000129AF                                   #                        writes(",  should be = ");
 656  000129AF                                  	.data	1
 657  00000dea *                                L306:
 658  00000dea *  2C202073686F756C642062652     	.ascii	",  should be = \0"
                  03D2000
 659  00000dfa *                                	.text
 660  000129AF    dd 8f00000dea                 	pushl	$L306
 661  000129B5    fe 08 effffff9fc              	callf	$8,_writes
 662  000129BC                                   #                        write32h( load_regs[index2] );
 663  000129BC    0d effffff9f6 50              	movl	_index2,r0
 664  000129C3    dd 40effffff9ee               	pushl	_load_regs[r0]
 665  000129CA    fe 08 effffff9e7              	callf	$8,_write32h
 666  000129D1                                   #                        writes("\n");
 667  000129D1                                  	.data	1
 668  00000dfa *                                L307:
 669  00000dfa *  0A00                          	.ascii	"\12\0"
 670  00000dfc *                                	.text
 671  000129D1    dd 8f00000dfa                 	pushl	$L307
 672  000129D7    fe 08 effffff9da              	callf	$8,_writes
 673  000129DE                                   # 		       }
 674  000129DE                                   #                   if ( halt_flg )               /* halt on error? */
 675  000129DE                                  L298:
 676  000129DE    5d effffff9d4                 	tstl	_halt_flg
 677  000129E4    31 09                         	jeql	L308
 678  000129E6                                   #                        cmpf_er_halt( BAD_REG_HLT );    /* PC after the halt */
 679  000129E6    dd 02                         	pushl	$2
 680  000129E8    fe 08 ef000005a5              	callf	$8,_cmpf_er_halt
 681  000129EF                                   #                   if ( loop_on_err ) {
 682  000129EF                                  L308:
 683  000129EF    5d effffff9c3                 	tstl	_loop_on_err
 684  000129F5    31 0a                         	jeql	L309
 685  000129F7                                   #                      force_loop = TRUE;         /* set the force loop flag */
 686  000129F7    0d 01 effffff9ba              	movl	$1,_force_loop
 687  000129FE                                   #                      asm("brw _cmpf_3_lp1");    /* and loop on the error   */
 688  000129FE    13 fe8e                       brw _cmpf_3_lp1
 689  00012A01                                   #                   }   /* end of loop on error    */
 690  00012A01                                   #              }    /* end of register corruption error */
 691  00012A01                                  L309:
 692  00012A01                                   #         } while( index++ < max_cmpf_1_index);/* end of data loop      */
 693  00012A01                                  L297:
 694  00012A01                                  L292:
 695  00012A01    0d effffff9b1 50              	movl	_index,r0
 696  00012A08    6d effffff9aa                 	incl	_index
 697  00012A0E    1d 50 effffff9a3              	cmpl	r0,_max_cmpf_1_index
 698  00012A15    81 03 13 fe4f                 	jlss	L293
 699  00012A1A                                  L291:
 700  00012A1A                                   # }  /* end of subtest 3 */
 701  00012A1A    40                            	ret#2
 702  00012A1B                                  	.set	L286,0x0
 703  00012A1B                                  L288:
 704  00012A1B    13 fe2b                       	jbr 	L289
 705  00012A1E                                  	.data
 706  00000c8c *                                	.text
 707  00012A1E                                  	.align	1
 708  00012A1E                                  	.globl	_cmpf_4
 709  00012A1E                                  _cmpf_4:
 710  00012A1E    0000                          	.word	L310
 711  00012A20                                   #   
 712  00012A20                                   # 
 713  00012A20                                   # 
 714  00012A20                                   # /************************************************************************
 715  00012A20                                   # *
 716  00012A20                                   # *       SUBTEST 4 - Check for accumulator corruption
 717  00012A20                                   # *
 718  00012A20                                   # ************************************************************************/
 719  00012A20                                   # cmpf_4() 
 720  00012A20                                   # {
 721  00012A20    13 0181                       	jbr 	L312
 722  00012A23                                  L313:
 723  00012A23                                   #         force_loop = FALSE;                         /* clear force_loop flg */
 724  00012A23    4d effffff98f                 	clrl	_force_loop
 725  00012A29                                   #         index = 0;
 726  00012A29    4d effffff989                 	clrl	_index
 727  00012A2F                                   #         do 
 728  00012A2F                                  L316:
 729  00012A2F                                   #         {
 730  00012A2F                                   #              sgl_value_1   = cmpf_1_data[index].one; /* data to load */
 731  00012A2F    5c 0c effffff982 50           	mull3	$12,_index,r0
 732  00012A37    0d e000000000 effffff976      	movl	_cmpf_1_data(r0),_sgl_value_1
 733  00012A42                                   #              sgl_value_2   = cmpf_1_data[index].two;
 734  00012A42    5c 0c effffff96f 50           	mull3	$12,_index,r0
 735  00012A4A    0d e000000004 effffff963      	movl	_cmpf_1_data+4(r0),_sgl_value_2
 736  00012A55                                   #               if( sgl_value_1 & 0x7f800000 )
 737  00012A55    3d 8f7f800000 effffff958      	bitl	$2139095040,_sgl_value_1
 738  00012A60    31 0d                         	jeql	L317
 739  00012A62                                   #                   sgl_expected = sgl_value_1;  	/* expected = loaded */
 740  00012A62    0d effffff950 effffff94b      	movl	_sgl_value_1,_sgl_expected
 741  00012A6D                                   #              else 
 742  00012A6D    11 06                         	jbr 	L318
 743  00012A6F                                  L317:
 744  00012A6F                                   #                   sgl_expected = 0;		/* expect a '0' stored */
 745  00012A6F    4d effffff943                 	clrl	_sgl_expected
 746  00012A75                                  L318:
 747  00012A75                                   # /*
 748  00012A75                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 749  00012A75                                   #  * The force loop flag is set after the first error.
 750  00012A75                                   # */
 751  00012A75                                   #              asm("_cmpf_4_lp1:");
 752  00012A75                                  _cmpf_4_lp1:
 753  00012A75                                   #              asm("ldf _sgl_value_1");           /* LOAD the accumulator  */
 754  00012A75    06 effffff93d                 ldf _sgl_value_1
 755  00012A7B                                   #              asm("cmpf _sgl_value_2");          /* test the values       */
 756  00012A7B    36 effffff937                 cmpf _sgl_value_2
 757  00012A81                                   #              asm("stf _sgl_st_acc");            /* store the accumulator */
 758  00012A81    26 effffff931                 stf _sgl_st_acc
 759  00012A87                                   #              if( force_loop )                   /* loop?                    */
 760  00012A87    5d effffff92b                 	tstl	_force_loop
 761  00012A8D    31 02                         	jeql	L319
 762  00012A8F                                   #                    asm("brb _cmpf_4_lp1");;     /* run the loop again       */
 763  00012A8F    11 e4                         brb _cmpf_4_lp1
 764  00012A91                                  L319:
 765  00012A91                                   #              if( sgl_st_acc != sgl_expected )   /* COMPARE the values */
 766  00012A91    1d effffff921 effffff91c      	cmpl	_sgl_st_acc,_sgl_expected
 767  00012A9C    21 03 13 00e9                 	jeql	L320
 768  00012AA1                                   #              {
 769  00012AA1                                   #                   errcnt++;                     /* bump the error count */
 770  00012AA1    6d effffff911                 	incl	_errcnt
 771  00012AA7                                   #                   if ( prt_error ) {
 772  00012AA7    5d effffff90b                 	tstl	_prt_error
 773  00012AAD    21 03 13 00b5                 	jeql	L321
 774  00012AB2                                   #                        writes(" \n");      /* start a new print line   */
 775  00012AB2                                  	.data	1
 776  00000dfc *                                L322:
 777  00000dfc *  200A00                        	.ascii	" \12\0"
 778  00000dff *                                	.text
 779  00012AB2    dd 8f00000dfc                 	pushl	$L322
 780  00012AB8    fe 08 effffff8f9              	callf	$8,_writes
 781  00012ABF                                   #                        writes("cycle: ");
 782  00012ABF                                  	.data	1
 783  00000dff *                                L323:
 784  00000dff *  6379636C653A2000              	.ascii	"cycle: \0"
 785  00000e07 *                                	.text
 786  00012ABF    dd 8f00000dff                 	pushl	$L323
 787  00012AC5    fe 08 effffff8ec              	callf	$8,_writes
 788  00012ACC                                   #                        writed( cycle );
 789  00012ACC    dd effffff8e6                 	pushl	_cycle
 790  00012AD2    fe 08 effffff8df              	callf	$8,_writed
 791  00012AD9                                   #                        writes("  CMPF test ");
 792  00012AD9                                  	.data	1
 793  00000e07 *                                L324:
 794  00000e07 *  2020434D50462074657374200     	.ascii	"  CMPF test \0"
                  0
 795  00000e14 *                                	.text
 796  00012AD9    dd 8f00000e07                 	pushl	$L324
 797  00012ADF    fe 08 effffff8d2              	callf	$8,_writes
 798  00012AE6                                   # 		       writed( test_no );
 799  00012AE6    dd effffff8cc                 	pushl	_test_no
 800  00012AEC    fe 08 effffff8c5              	callf	$8,_writed
 801  00012AF3                                   # 	       writes(", subtest 4 (Cache Data) - THE ACC WAS MODIFIED\n");
 802  00012AF3                                  	.data	1
 803  00000e14 *                                L325:
 804  00000e14 *  2C20737562746573742034202     	.ascii	", subtest 4 (Cache Data) - THE ACC WAS MODIFIED\12\0"
                  8436163686520446174612920
                  2D20544845204143432057415
                  3204D4F4449464945440A00
 805  00000e45 *                                	.text
 806  00012AF3    dd 8f00000e14                 	pushl	$L325
 807  00012AF9    fe 08 effffff8b8              	callf	$8,_writes
 808  00012B00                                   #                        print_cmpf_data();
 809  00012B00    fe 04 ef00000451              	callf	$4,_print_cmpf_data
 810  00012B07                                   #                        writes(",  data index = ");
 811  00012B07                                  	.data	1
 812  00000e45 *                                L326:
 813  00000e45 *  2C20206461746120696E64657     	.ascii	",  data index = \0"
                  8203D2000
 814  00000e56 *                                	.text
 815  00012B07    dd 8f00000e45                 	pushl	$L326
 816  00012B0D    fe 08 effffff8a4              	callf	$8,_writes
 817  00012B14                                   #                        writed( index );
 818  00012B14    dd effffff89e                 	pushl	_index
 819  00012B1A    fe 08 effffff897              	callf	$8,_writed
 820  00012B21                                   #                        writec('\n');
 821  00012B21    dd 0a                         	pushl	$10
 822  00012B23    fe 08 effffff88e              	callf	$8,_writec
 823  00012B2A                                   #                        writes("  final Acc = ");
 824  00012B2A                                  	.data	1
 825  00000e56 *                                L327:
 826  00000e56 *  202066696E616C20416363203     	.ascii	"  final Acc = \0"
                  D2000
 827  00000e65 *                                	.text
 828  00012B2A    dd 8f00000e56                 	pushl	$L327
 829  00012B30    fe 08 effffff881              	callf	$8,_writes
 830  00012B37                                   #                        write32h( sgl_st_acc );
 831  00012B37    dd effffff87b                 	pushl	_sgl_st_acc
 832  00012B3D    fe 08 effffff874              	callf	$8,_write32h
 833  00012B44                                   #                        writes(",  Acc expected = ");
 834  00012B44                                  	.data	1
 835  00000e65 *                                L328:
 836  00000e65 *  2C20204163632065787065637     	.ascii	",  Acc expected = \0"
                  46564203D2000
 837  00000e78 *                                	.text
 838  00012B44    dd 8f00000e65                 	pushl	$L328
 839  00012B4A    fe 08 effffff867              	callf	$8,_writes
 840  00012B51                                   #                        write32h( sgl_expected );
 841  00012B51    dd effffff861                 	pushl	_sgl_expected
 842  00012B57    fe 08 effffff85a              	callf	$8,_write32h
 843  00012B5E                                   #                        writec('\n');
 844  00012B5E    dd 0a                         	pushl	$10
 845  00012B60    fe 08 effffff851              	callf	$8,_writec
 846  00012B67                                   #                   }
 847  00012B67                                   #                   if ( halt_flg )               /* halt on error? */
 848  00012B67                                  L321:
 849  00012B67    5d effffff84b                 	tstl	_halt_flg
 850  00012B6D    31 09                         	jeql	L329
 851  00012B6F                                   #                        cmpf_er_halt( BAD_ACC_HLT ); /* halt on the error */
 852  00012B6F    dd 01                         	pushl	$1
 853  00012B71    fe 08 ef0000041c              	callf	$8,_cmpf_er_halt
 854  00012B78                                   #                   if ( loop_on_err ) {
 855  00012B78                                  L329:
 856  00012B78    5d effffff83a                 	tstl	_loop_on_err
 857  00012B7E    31 0a                         	jeql	L330
 858  00012B80                                   #                      force_loop = TRUE;         /* set the force loop flag */
 859  00012B80    0d 01 effffff831              	movl	$1,_force_loop
 860  00012B87                                   #                      asm("brw _cmpf_4_lp1");    /* and loop on the error   */
 861  00012B87    13 feeb                       brw _cmpf_4_lp1
 862  00012B8A                                   #                   }   /* end of loop on error    */
 863  00012B8A                                   #              }   /* end of compare error    */
 864  00012B8A                                  L330:
 865  00012B8A                                   #         } while( index++ < max_cmpf_1_index);/* end of data loop      */
 866  00012B8A                                  L320:
 867  00012B8A                                  L315:
 868  00012B8A    0d effffff828 50              	movl	_index,r0
 869  00012B91    6d effffff821                 	incl	_index
 870  00012B97    1d 50 effffff81a              	cmpl	r0,_max_cmpf_1_index
 871  00012B9E    81 03 13 fe8c                 	jlss	L316
 872  00012BA3                                  L314:
 873  00012BA3                                   # }  /* end of subtest 4 */
 874  00012BA3    40                            	ret#2
 875  00012BA4                                  	.set	L310,0x0
 876  00012BA4                                  L312:
 877  00012BA4    13 fe7c                       	jbr 	L313
 878  00012BA7                                  	.data
 879  00000c8c *                                	.text
 880  00012BA7    00                            	.align	1
 881  00012BA8                                  	.globl	_cmpf_5
 882  00012BA8                                  _cmpf_5:
 883  00012BA8    0000                          	.word	L331
 884  00012BAA                                   #   
 885  00012BAA                                   # 
 886  00012BAA                                   # 
 887  00012BAA                                   # /****************************************************************************
 888  00012BAA                                   # *
 889  00012BAA                                   # *               SUBTEST 5 - CMPF status test  - piped entry
 890  00012BAA                                   # *
 891  00012BAA                                   # ****************************************************************************/
 892  00012BAA                                   # cmpf_5() 
 893  00012BAA                                   # {
 894  00012BAA    13 0211                       	jbr 	L333
 895  00012BAD                                  L334:
 896  00012BAD                                   #         force_loop = FALSE; 
 897  00012BAD    4d effffff805                 	clrl	_force_loop
 898  00012BB3                                   # 	subtest = 5;
 899  00012BB3    0d 05 effffff7fe              	movl	$5,_subtest
 900  00012BBA                                   # 	index = 0;
 901  00012BBA    4d effffff7f8                 	clrl	_index
 902  00012BC0                                   #         do 
 903  00012BC0                                  L337:
 904  00012BC0                                   #         {
 905  00012BC0                                   #            sgl_value_1  = cmpf_1_data[index].one; /* get the data operands  */
 906  00012BC0    5c 0c effffff7f1 50           	mull3	$12,_index,r0
 907  00012BC8    0d e000000000 effffff7e5      	movl	_cmpf_1_data(r0),_sgl_value_1
 908  00012BD3                                   #            sgl_value_2  = cmpf_1_data[index].two;
 909  00012BD3    5c 0c effffff7de 50           	mull3	$12,_index,r0
 910  00012BDB    0d e000000004 effffff7d2      	movl	_cmpf_1_data+4(r0),_sgl_value_2
 911  00012BE6                                   #            sgl_expected = cmpf_1_data[index].flag;/* get expected results */
 912  00012BE6    5c 0c effffff7cb 50           	mull3	$12,_index,r0
 913  00012BEE    0d e000000008 effffff7bf      	movl	_cmpf_1_data+8(r0),_sgl_expected
 914  00012BF9                                   #            status_index = 0;                      /* clear the status index */
 915  00012BF9    4d effffff7b9                 	clrl	_status_index
 916  00012BFF                                   #            do
 917  00012BFF                                  L340:
 918  00012BFF                                   #            {
 919  00012BFF                                   #                sgl_dummy1 = status_array[status_index]; /* array = +, -, 0  */
 920  00012BFF    0d effffff7b3 50              	movl	_status_index,r0
 921  00012C06    0d 40effffff7ab               	movl	_status_array[r0],_sgl_dummy1
                  effffff7a6 
 922  00012C12                                   # /*
 923  00012C12                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
 924  00012C12                                   #  * The force loop flag is set after the first error.
 925  00012C12                                   # */
 926  00012C12                                   #                asm("_cmpf_5_lp1:");
 927  00012C12                                  _cmpf_5_lp1:
 928  00012C12                                   #                asm("movl $0,r0");               /* clear r0                 */
 929  00012C12    0d 00 50                      movl $0,r0
 930  00012C15                                   #                asm("ldf r0");                   /* load the accumulator     */
 931  00012C15    06 50                         ldf r0
 932  00012C17                                   #                asm("addf _sgl_value_1");        /* add the 1st operand      */
 933  00012C17    c6 effffff79b                 addf _sgl_value_1
 934  00012C1D                                   #                asm("tstl _sgl_dummy1");         /* generate initial status  */
 935  00012C1D    5d effffff795                 tstl _sgl_dummy1
 936  00012C23                                   #                asm("movpsl _init_psl");         /* save the initial status  */
 937  00012C23    cd effffff78f                 movpsl _init_psl
 938  00012C29                                   #                asm("cmpf _sgl_value_2");        /* compare the operands     */
 939  00012C29    36 effffff789                 cmpf _sgl_value_2
 940  00012C2F                                   #                asm("movpsl _psl_val");          /* save the final status    */
 941  00012C2F    cd effffff783                 movpsl _psl_val
 942  00012C35                                   #                asm("stf _sgl_st_acc");          /* save the final acc       */
 943  00012C35    26 effffff77d                 stf _sgl_st_acc
 944  00012C3B                                   #                if( force_loop )                 /* loop?                    */
 945  00012C3B    5d effffff777                 	tstl	_force_loop
 946  00012C41    31 02                         	jeql	L341
 947  00012C43                                   #                    asm("brb _cmpf_5_lp1");;     /* run the loop again       */
 948  00012C43    11 cd                         brb _cmpf_5_lp1
 949  00012C45                                  L341:
 950  00012C45                                   #                exp_psl = init_psl;              /* get the initial PSL      */
 951  00012C45    0d effffff76d effffff768      	movl	_init_psl,_exp_psl
 952  00012C50                                   #                exp_psl &= 0xfffffff3;           /* clear ZERO, NEGATIVE     */
 953  00012C50    ac 88f3 effffff760            	andl2	$-13,_exp_psl
 954  00012C58                                   #                if( sgl_expected == ZERO )
 955  00012C58    1d effffff75a 04              	cmpl	_sgl_expected,$4
 956  00012C5F    21 07                         	jneq	L342
 957  00012C61                                   #                    exp_psl |= PSL_Z;            /* expect the ZERO bit set  */
 958  00012C61    8c 04 effffff750              	orl2	$4,_exp_psl
 959  00012C68                                   #                if( sgl_expected == NEGATIVE )
 960  00012C68                                  L342:
 961  00012C68    1d effffff74a 08              	cmpl	_sgl_expected,$8
 962  00012C6F    21 07                         	jneq	L343
 963  00012C71                                   #                    exp_psl |= PSL_N;            /* expect the NEG bit set   */
 964  00012C71    8c 08 effffff740              	orl2	$8,_exp_psl
 965  00012C78                                   #                if( psl_val != exp_psl ) {       /* COMPARE the values       */
 966  00012C78                                  L343:
 967  00012C78    1d effffff73a effffff735      	cmpl	_psl_val,_exp_psl
 968  00012C83    21 03 13 0107                 	jeql	L344
 969  00012C88                                   #                   errcnt++;                     /* bump the error count     */
 970  00012C88    6d effffff72a                 	incl	_errcnt
 971  00012C8E                                   #                   if ( prt_error ) {
 972  00012C8E    5d effffff724                 	tstl	_prt_error
 973  00012C94    21 03 13 00d3                 	jeql	L345
 974  00012C99                                   #                      writes(" \n");         /* start a new print line   */
 975  00012C99                                  	.data	1
 976  00000e78 *                                L346:
 977  00000e78 *  200A00                        	.ascii	" \12\0"
 978  00000e7b *                                	.text
 979  00012C99    dd 8f00000e78                 	pushl	$L346
 980  00012C9F    fe 08 effffff712              	callf	$8,_writes
 981  00012CA6                                   #                      writes("cycle: ");
 982  00012CA6                                  	.data	1
 983  00000e7b *                                L347:
 984  00000e7b *  6379636C653A2000              	.ascii	"cycle: \0"
 985  00000e83 *                                	.text
 986  00012CA6    dd 8f00000e7b                 	pushl	$L347
 987  00012CAC    fe 08 effffff705              	callf	$8,_writes
 988  00012CB3                                   #                      writed( cycle );
 989  00012CB3    dd effffff6ff                 	pushl	_cycle
 990  00012CB9    fe 08 effffff6f8              	callf	$8,_writed
 991  00012CC0                                   #                      writes("  CMPF test ");
 992  00012CC0                                  	.data	1
 993  00000e83 *                                L348:
 994  00000e83 *  2020434D50462074657374200     	.ascii	"  CMPF test \0"
                  0
 995  00000e90 *                                	.text
 996  00012CC0    dd 8f00000e83                 	pushl	$L348
 997  00012CC6    fe 08 effffff6eb              	callf	$8,_writes
 998  00012CCD                                   # 		     writed( test_no );
 999  00012CCD    dd effffff6e5                 	pushl	_test_no
1000  00012CD3    fe 08 effffff6de              	callf	$8,_writed
1001  00012CDA                                   # 		     writes(", subtest 5 (Piped Entry) - BAD FINAL PSL\n");
1002  00012CDA                                  	.data	1
1003  00000e90 *                                L349:
1004  00000e90 *  2C20737562746573742035202     	.ascii	", subtest 5 (Piped Entry) - BAD FINAL PSL\12\0"
                  8506970656420456E74727929
                  202D204241442046494E414C2
                  050534C0A00
1005  00000ebb *                                	.text
1006  00012CDA    dd 8f00000e90                 	pushl	$L349
1007  00012CE0    fe 08 effffff6d1              	callf	$8,_writes
1008  00012CE7                                   #                      print_cmpf_data();
1009  00012CE7    fe 04 ef0000026a              	callf	$4,_print_cmpf_data
1010  00012CEE                                   #                      writes(",  data index = ");
1011  00012CEE                                  	.data	1
1012  00000ebb *                                L350:
1013  00000ebb *  2C20206461746120696E64657     	.ascii	",  data index = \0"
                  8203D2000
1014  00000ecc *                                	.text
1015  00012CEE    dd 8f00000ebb                 	pushl	$L350
1016  00012CF4    fe 08 effffff6bd              	callf	$8,_writes
1017  00012CFB                                   #                      writed( index );
1018  00012CFB    dd effffff6b7                 	pushl	_index
1019  00012D01    fe 08 effffff6b0              	callf	$8,_writed
1020  00012D08                                   #                      writec('\n');
1021  00012D08    dd 0a                         	pushl	$10
1022  00012D0A    fe 08 effffff6a7              	callf	$8,_writec
1023  00012D11                                   #                      writes("initial PSL = ");
1024  00012D11                                  	.data	1
1025  00000ecc *                                L351:
1026  00000ecc *  696E697469616C2050534C203     	.ascii	"initial PSL = \0"
                  D2000
1027  00000edb *                                	.text
1028  00012D11    dd 8f00000ecc                 	pushl	$L351
1029  00012D17    fe 08 effffff69a              	callf	$8,_writes
1030  00012D1E                                   #                      write32h( init_psl );
1031  00012D1E    dd effffff694                 	pushl	_init_psl
1032  00012D24    fe 08 effffff68d              	callf	$8,_write32h
1033  00012D2B                                   #                      writes(",  final PSL = ");
1034  00012D2B                                  	.data	1
1035  00000edb *                                L352:
1036  00000edb *  2C202066696E616C2050534C2     	.ascii	",  final PSL = \0"
                  03D2000
1037  00000eeb *                                	.text
1038  00012D2B    dd 8f00000edb                 	pushl	$L352
1039  00012D31    fe 08 effffff680              	callf	$8,_writes
1040  00012D38                                   #                      write32h( psl_val );
1041  00012D38    dd effffff67a                 	pushl	_psl_val
1042  00012D3E    fe 08 effffff673              	callf	$8,_write32h
1043  00012D45                                   #                      writes(",  expected PSL = ");
1044  00012D45                                  	.data	1
1045  00000eeb *                                L353:
1046  00000eeb *  2C20206578706563746564205     	.ascii	",  expected PSL = \0"
                  0534C203D2000
1047  00000efe *                                	.text
1048  00012D45    dd 8f00000eeb                 	pushl	$L353
1049  00012D4B    fe 08 effffff666              	callf	$8,_writes
1050  00012D52                                   #                      write32h( exp_psl );
1051  00012D52    dd effffff660                 	pushl	_exp_psl
1052  00012D58    fe 08 effffff659              	callf	$8,_write32h
1053  00012D5F                                   #                      writes("\n");
1054  00012D5F                                  	.data	1
1055  00000efe *                                L354:
1056  00000efe *  0A00                          	.ascii	"\12\0"
1057  00000f00 *                                	.text
1058  00012D5F    dd 8f00000efe                 	pushl	$L354
1059  00012D65    fe 08 effffff64c              	callf	$8,_writes
1060  00012D6C                                   #                   }
1061  00012D6C                                   #                   if ( halt_flg ) 
1062  00012D6C                                  L345:
1063  00012D6C    5d effffff646                 	tstl	_halt_flg
1064  00012D72    31 09                         	jeql	L355
1065  00012D74                                   #                      cmpf_er_halt( BAD_PSL_HLT );   /* halt on the error   */
1066  00012D74    dd 03                         	pushl	$3
1067  00012D76    fe 08 ef00000217              	callf	$8,_cmpf_er_halt
1068  00012D7D                                   #                   if ( loop_on_err ) {
1069  00012D7D                                  L355:
1070  00012D7D    5d effffff635                 	tstl	_loop_on_err
1071  00012D83    31 0a                         	jeql	L356
1072  00012D85                                   #                      force_loop = TRUE;         /* set the force loop flag */
1073  00012D85    0d 01 effffff62c              	movl	$1,_force_loop
1074  00012D8C                                   #                      asm("brw _cmpf_5_lp1");    /* and loop on the error   */
1075  00012D8C    13 fe83                       brw _cmpf_5_lp1
1076  00012D8F                                   #                   }   /* end of loop on error    */
1077  00012D8F                                   #                }  /* end of compare error */
1078  00012D8F                                  L356:
1079  00012D8F                                   #             }  while ( ++status_index < 3 ); /* end of PSL WHILE loop */
1080  00012D8F                                  L344:
1081  00012D8F                                  L339:
1082  00012D8F    6d effffff623                 	incl	_status_index
1083  00012D95    0d effffff61d 50              	movl	_status_index,r0
1084  00012D9C    1d 50 03                      	cmpl	r0,$3
1085  00012D9F    81 03 13 fe5b                 	jlss	L340
1086  00012DA4                                  L338:
1087  00012DA4                                   #         } while( index++ < max_cmpf_1_index);/* end of data loop      */
1088  00012DA4                                  L336:
1089  00012DA4    0d effffff60e 50              	movl	_index,r0
1090  00012DAB    6d effffff607                 	incl	_index
1091  00012DB1    1d 50 effffff600              	cmpl	r0,_max_cmpf_1_index
1092  00012DB8    81 03 13 fe03                 	jlss	L337
1093  00012DBD                                  L335:
1094  00012DBD                                   # }  /* end of subtest 5 */
1095  00012DBD    40                            	ret#2
1096  00012DBE                                  	.set	L331,0x0
1097  00012DBE                                  L333:
1098  00012DBE    13 fdec                       	jbr 	L334
1099  00012DC1                                  	.data
1100  00000c8c *                                	.text
1101  00012DC1    00                            	.align	1
1102  00012DC2                                  	.globl	_cmpf_6
1103  00012DC2                                  _cmpf_6:
1104  00012DC2    0000                          	.word	L357
1105  00012DC4                                   #   
1106  00012DC4                                   # 
1107  00012DC4                                   # 
1108  00012DC4                                   # /****************************************************************************
1109  00012DC4                                   # *
1110  00012DC4                                   # *               SUBTEST 6 - CMPF status test  -piped exit 
1111  00012DC4                                   # *
1112  00012DC4                                   # ****************************************************************************/
1113  00012DC4                                   # cmpf_6() 
1114  00012DC4                                   # {
1115  00012DC4    13 018d                       	jbr 	L359
1116  00012DC7                                  L360:
1117  00012DC7                                   #         force_loop = FALSE; 
1118  00012DC7    4d effffff5eb                 	clrl	_force_loop
1119  00012DCD                                   # 	subtest = 2;
1120  00012DCD    0d 02 effffff5e4              	movl	$2,_subtest
1121  00012DD4                                   # 	index = 0;
1122  00012DD4    4d effffff5de                 	clrl	_index
1123  00012DDA                                   #         do 
1124  00012DDA                                  L363:
1125  00012DDA                                   #         {
1126  00012DDA                                   #              sgl_value_1   = cmpf_1_data[index].one; /* data to load */
1127  00012DDA    5c 0c effffff5d7 50           	mull3	$12,_index,r0
1128  00012DE2    0d e000000000 effffff5cb      	movl	_cmpf_1_data(r0),_sgl_value_1
1129  00012DED                                   #              sgl_value_2   = cmpf_1_data[index].two;
1130  00012DED    5c 0c effffff5c4 50           	mull3	$12,_index,r0
1131  00012DF5    0d e000000004 effffff5b8      	movl	_cmpf_1_data+4(r0),_sgl_value_2
1132  00012E00                                   #               if( sgl_value_1 & 0x7f800000 )
1133  00012E00    3d 8f7f800000 effffff5ad      	bitl	$2139095040,_sgl_value_1
1134  00012E0B    31 0d                         	jeql	L364
1135  00012E0D                                   #                   sgl_expected = sgl_value_1;  	/* expected = loaded */
1136  00012E0D    0d effffff5a5 effffff5a0      	movl	_sgl_value_1,_sgl_expected
1137  00012E18                                   #              else 
1138  00012E18    11 06                         	jbr 	L365
1139  00012E1A                                  L364:
1140  00012E1A                                   #                   sgl_expected = 0;		/* expect a '0' stored */
1141  00012E1A    4d effffff598                 	clrl	_sgl_expected
1142  00012E20                                  L365:
1143  00012E20                                   # /*
1144  00012E20                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
1145  00012E20                                   #  * The force loop flag is set after the first error.
1146  00012E20                                   # */
1147  00012E20                                   #                asm("_cmpf_6_lp1:");
1148  00012E20                                  _cmpf_6_lp1:
1149  00012E20                                   #                asm("movl $0,r0");               /* clear r0                 */
1150  00012E20    0d 00 50                      movl $0,r0
1151  00012E23                                   #                asm("ldf _sgl_value_1");         /* load the 1st operand     */
1152  00012E23    06 effffff58f                 ldf _sgl_value_1
1153  00012E29                                   #                asm("cmpf _sgl_value_2");        /* compare the value        */
1154  00012E29    36 effffff589                 cmpf _sgl_value_2
1155  00012E2F                                   #                asm("addf r0");                  /* add a zero to the acc    */
1156  00012E2F    c6 50                         addf r0
1157  00012E31                                   #                asm("stf _sgl_st_acc");          /* save the accumulator     */
1158  00012E31    26 effffff581                 stf _sgl_st_acc
1159  00012E37                                   #                if( force_loop )                 /* loop?                    */
1160  00012E37    5d effffff57b                 	tstl	_force_loop
1161  00012E3D    31 02                         	jeql	L366
1162  00012E3F                                   #                    asm("brb _cmpf_6_lp1");;     /* run the loop again       */
1163  00012E3F    11 df                         brb _cmpf_6_lp1
1164  00012E41                                  L366:
1165  00012E41                                   #                if( sgl_st_acc != sgl_expected ) { /* COMPARE the values */
1166  00012E41    1d effffff571 effffff56c      	cmpl	_sgl_st_acc,_sgl_expected
1167  00012E4C    21 03 13 00e9                 	jeql	L367
1168  00012E51                                   #                   errcnt++;                     /* bump the error count     */
1169  00012E51    6d effffff561                 	incl	_errcnt
1170  00012E57                                   #                   if ( prt_error ) {
1171  00012E57    5d effffff55b                 	tstl	_prt_error
1172  00012E5D    21 03 13 00b5                 	jeql	L368
1173  00012E62                                   #                      writes(" \n");         /* start a new print line   */
1174  00012E62                                  	.data	1
1175  00000f00 *                                L369:
1176  00000f00 *  200A00                        	.ascii	" \12\0"
1177  00000f03 *                                	.text
1178  00012E62    dd 8f00000f00                 	pushl	$L369
1179  00012E68    fe 08 effffff549              	callf	$8,_writes
1180  00012E6F                                   #                      writes("cycle: ");
1181  00012E6F                                  	.data	1
1182  00000f03 *                                L370:
1183  00000f03 *  6379636C653A2000              	.ascii	"cycle: \0"
1184  00000f0b *                                	.text
1185  00012E6F    dd 8f00000f03                 	pushl	$L370
1186  00012E75    fe 08 effffff53c              	callf	$8,_writes
1187  00012E7C                                   #                      writed( cycle );
1188  00012E7C    dd effffff536                 	pushl	_cycle
1189  00012E82    fe 08 effffff52f              	callf	$8,_writed
1190  00012E89                                   #                      writes("  CMPF test ");
1191  00012E89                                  	.data	1
1192  00000f0b *                                L371:
1193  00000f0b *  2020434D50462074657374200     	.ascii	"  CMPF test \0"
                  0
1194  00000f18 *                                	.text
1195  00012E89    dd 8f00000f0b                 	pushl	$L371
1196  00012E8F    fe 08 effffff522              	callf	$8,_writes
1197  00012E96                                   # 		     writed( test_no );
1198  00012E96    dd effffff51c                 	pushl	_test_no
1199  00012E9C    fe 08 effffff515              	callf	$8,_writed
1200  00012EA3                                   # 	     writes(", subtest 6 (Piped Exit) - THE ACC WAS MODIFIED\n");
1201  00012EA3                                  	.data	1
1202  00000f18 *                                L372:
1203  00000f18 *  2C20737562746573742036202     	.ascii	", subtest 6 (Piped Exit) - THE ACC WAS MODIFIED\12\0"
                  8506970656420457869742920
                  2D20544845204143432057415
                  3204D4F4449464945440A00
1204  00000f49 *                                	.text
1205  00012EA3    dd 8f00000f18                 	pushl	$L372
1206  00012EA9    fe 08 effffff508              	callf	$8,_writes
1207  00012EB0                                   #                      print_cmpf_data();
1208  00012EB0    fe 04 ef000000a1              	callf	$4,_print_cmpf_data
1209  00012EB7                                   #                      writes(",  data index = ");
1210  00012EB7                                  	.data	1
1211  00000f49 *                                L373:
1212  00000f49 *  2C20206461746120696E64657     	.ascii	",  data index = \0"
                  8203D2000
1213  00000f5a *                                	.text
1214  00012EB7    dd 8f00000f49                 	pushl	$L373
1215  00012EBD    fe 08 effffff4f4              	callf	$8,_writes
1216  00012EC4                                   #                      writed( index );
1217  00012EC4    dd effffff4ee                 	pushl	_index
1218  00012ECA    fe 08 effffff4e7              	callf	$8,_writed
1219  00012ED1                                   #                      writec('\n');
1220  00012ED1    dd 0a                         	pushl	$10
1221  00012ED3    fe 08 effffff4de              	callf	$8,_writec
1222  00012EDA                                   #                      writes("  final Acc = ");
1223  00012EDA                                  	.data	1
1224  00000f5a *                                L374:
1225  00000f5a *  202066696E616C20416363203     	.ascii	"  final Acc = \0"
                  D2000
1226  00000f69 *                                	.text
1227  00012EDA    dd 8f00000f5a                 	pushl	$L374
1228  00012EE0    fe 08 effffff4d1              	callf	$8,_writes
1229  00012EE7                                   #                      write32h( sgl_st_acc );
1230  00012EE7    dd effffff4cb                 	pushl	_sgl_st_acc
1231  00012EED    fe 08 effffff4c4              	callf	$8,_write32h
1232  00012EF4                                   #                      writes(",  Acc expected = ");
1233  00012EF4                                  	.data	1
1234  00000f69 *                                L375:
1235  00000f69 *  2C20204163632065787065637     	.ascii	",  Acc expected = \0"
                  46564203D2000
1236  00000f7c *                                	.text
1237  00012EF4    dd 8f00000f69                 	pushl	$L375
1238  00012EFA    fe 08 effffff4b7              	callf	$8,_writes
1239  00012F01                                   #                      write32h( sgl_expected );
1240  00012F01    dd effffff4b1                 	pushl	_sgl_expected
1241  00012F07    fe 08 effffff4aa              	callf	$8,_write32h
1242  00012F0E                                   #                      writec('\n');
1243  00012F0E    dd 0a                         	pushl	$10
1244  00012F10    fe 08 effffff4a1              	callf	$8,_writec
1245  00012F17                                   #                   }
1246  00012F17                                   #                   if ( halt_flg ) 
1247  00012F17                                  L368:
1248  00012F17    5d effffff49b                 	tstl	_halt_flg
1249  00012F1D    31 09                         	jeql	L376
1250  00012F1F                                   #                      cmpf_er_halt( BAD_ACC_HLT );   /* halt on the error   */
1251  00012F1F    dd 01                         	pushl	$1
1252  00012F21    fe 08 ef0000006c              	callf	$8,_cmpf_er_halt
1253  00012F28                                   #                   if ( loop_on_err ) {
1254  00012F28                                  L376:
1255  00012F28    5d effffff48a                 	tstl	_loop_on_err
1256  00012F2E    31 0a                         	jeql	L377
1257  00012F30                                   #                      force_loop = TRUE;         /* set the force loop flag */
1258  00012F30    0d 01 effffff481              	movl	$1,_force_loop
1259  00012F37                                   #                      asm("brw _cmpf_6_lp1");    /* and loop on the error   */
1260  00012F37    13 fee6                       brw _cmpf_6_lp1
1261  00012F3A                                   #                   }   /* end of loop on error */
1262  00012F3A                                   #                }  /* end of compare error */
1263  00012F3A                                  L377:
1264  00012F3A                                   #         } while( index++ < max_cmpf_1_index);  /* end of data loop      */
1265  00012F3A                                  L367:
1266  00012F3A                                  L362:
1267  00012F3A    0d effffff478 50              	movl	_index,r0
1268  00012F41    6d effffff471                 	incl	_index
1269  00012F47    1d 50 effffff46a              	cmpl	r0,_max_cmpf_1_index
1270  00012F4E    81 03 13 fe87                 	jlss	L363
1271  00012F53                                  L361:
1272  00012F53                                   # }  /* end of subtest 6 */
1273  00012F53    40                            	ret#2
1274  00012F54                                  	.set	L357,0x0
1275  00012F54                                  L359:
1276  00012F54    13 fe70                       	jbr 	L360
1277  00012F57                                  	.data
1278  00000c8c *                                	.text
1279  00012F57    00                            	.align	1
1280  00012F58                                  	.globl	_print_cmpf_data
1281  00012F58                                  _print_cmpf_data:
1282  00012F58    0000                          	.word	L378
1283  00012F5A                                   #   
1284  00012F5A                                   # 
1285  00012F5A                                   # 
1286  00012F5A                                   # /**************************************************************************
1287  00012F5A                                   # *
1288  00012F5A                                   # *       PRINT THE DATA AND STORE RESULTS
1289  00012F5A                                   # *
1290  00012F5A                                   # *  initial Acc = xxxxxxxx,     stored = xxxxxxxx,   data index = xx
1291  00012F5A                                   # *      operand = xxxxxxxx,   expected = xxxxxxxx
1292  00012F5A                                   # **************************************************************************/
1293  00012F5A                                   # print_cmpf_data()
1294  00012F5A                                   # {
1295  00012F5A    11 35                         	jbr 	L380
1296  00012F5C                                  L381:
1297  00012F5C                                   #         writes("initial Acc = ");
1298  00012F5C                                  	.data	1
1299  00000f7c *                                L382:
1300  00000f7c *  696E697469616C20416363203     	.ascii	"initial Acc = \0"
                  D2000
1301  00000f8b *                                	.text
1302  00012F5C    dd 8f00000f7c                 	pushl	$L382
1303  00012F62    fe 08 effffff44f              	callf	$8,_writes
1304  00012F69                                   #         write32h( sgl_value_1 );
1305  00012F69    dd effffff449                 	pushl	_sgl_value_1
1306  00012F6F    fe 08 effffff442              	callf	$8,_write32h
1307  00012F76                                   #         writes(",   operand = ");
1308  00012F76                                  	.data	1
1309  00000f8b *                                L383:
1310  00000f8b *  2C2020206F706572616E64203     	.ascii	",   operand = \0"
                  D2000
1311  00000f9a *                                	.text
1312  00012F76    dd 8f00000f8b                 	pushl	$L383
1313  00012F7C    fe 08 effffff435              	callf	$8,_writes
1314  00012F83                                   #         write32h( sgl_value_2 );
1315  00012F83    dd effffff42f                 	pushl	_sgl_value_2
1316  00012F89    fe 08 effffff428              	callf	$8,_write32h
1317  00012F90                                   # }
1318  00012F90    40                            	ret#2
1319  00012F91                                  	.set	L378,0x0
1320  00012F91                                  L380:
1321  00012F91    11 c9                         	jbr 	L381
1322  00012F93                                  	.data
1323  00000c8c *                                	.text
1324  00012F93    00                            	.align	1
1325  00012F94                                  	.globl	_cmpf_er_halt
1326  00012F94                                  _cmpf_er_halt:
1327  00012F94    0000                          	.word	L384
1328  00012F96                                   #    
1329  00012F96                                   # 
1330  00012F96                                   # 
1331  00012F96                                   # /**************************************************************************
1332  00012F96                                   # *
1333  00012F96                                   # *               HALT ON ERROR ROUTINE 
1334  00012F96                                   # *
1335  00012F96                                   # **************************************************************************/
1336  00012F96                                   # cmpf_er_halt( halt_code )
1337  00012F96                                   # int halt_code;
1338  00012F96                                   # {
1339  00012F96    13 00a8                       	jbr 	L386
1340  00012F99                                  L387:
1341  00012F99                                   #         sgl_dummy1 = halt_code;                 /* get the error type    */
1342  00012F99    0d ad04 effffff417            	movl	4(fp),_sgl_dummy1
1343  00012FA1                                   #         asm("movl _test_no,r0");                /* r0  = test number     */
1344  00012FA1    0d effffff411 50              movl _test_no,r0
1345  00012FA8                                   #         asm("movl _subtest,r1");                /* r1  = subtest number  */
1346  00012FA8    0d effffff40a 51              movl _subtest,r1
1347  00012FAF                                   #         asm("movl _sgl_dummy1,r2");             /* r2  = error code      */
1348  00012FAF    0d effffff403 52              movl _sgl_dummy1,r2
1349  00012FB6                                   #         asm("movl _cycle,r3");                  /* r3  = cycle count     */
1350  00012FB6    0d effffff3fc 53              movl _cycle,r3
1351  00012FBD                                   #         asm("movl _sgl_value_1,r4");            /* r4  = initial acc     */
1352  00012FBD    0d effffff3f5 54              movl _sgl_value_1,r4
1353  00012FC4                                   #         asm("movl _sgl_value_2,r5");            /* r5  = data compared   */
1354  00012FC4    0d effffff3ee 55              movl _sgl_value_2,r5
1355  00012FCB                                   #         asm("movl _psl_val,r6");                /* r6  = final PSL       */
1356  00012FCB    0d effffff3e7 56              movl _psl_val,r6
1357  00012FD2                                   #         if( halt_code == BAD_ACC_HLT ) {
1358  00012FD2    1d ad04 01                    	cmpl	4(fp),$1
1359  00012FD6    21 10                         	jneq	L388
1360  00012FD8                                   #              asm("movl _sgl_st_acc,r7");        /* r7  = actual value    */
1361  00012FD8    0d effffff3da 57              movl _sgl_st_acc,r7
1362  00012FDF                                   #              asm("movl _sgl_expected,r8");      /* r8  = expected value  */
1363  00012FDF    0d effffff3d3 58              movl _sgl_expected,r8
1364  00012FE6                                   #         } else
1365  00012FE6    11 57                         	jbr 	L389
1366  00012FE8                                  L388:
1367  00012FE8                                   #         if( halt_code == BAD_REG_HLT ) {
1368  00012FE8    1d ad04 02                    	cmpl	4(fp),$2
1369  00012FEC    21 3d                         	jneq	L390
1370  00012FEE                                   #              sgl_dummy1 = load_regs[index2];
1371  00012FEE    0d effffff3c4 50              	movl	_index2,r0
1372  00012FF5    0d 40effffff3bc               	movl	_load_regs[r0],_sgl_dummy1
                  effffff3b7 
1373  00013001                                   #              sgl_dummy2 = store_regs[index2];
1374  00013001    0d effffff3b1 50              	movl	_index2,r0
1375  00013008    0d 40effffff3a9               	movl	_store_regs[r0],_sgl_dummy2
                  effffff3a4 
1376  00013014                                   #              asm("movl _index2,r7");            /* r7  = bad register #  */
1377  00013014    0d effffff39e 57              movl _index2,r7
1378  0001301B                                   #              asm("movl _sgl_dummy2,r8");        /* r8  = actual value    */
1379  0001301B    0d effffff397 58              movl _sgl_dummy2,r8
1380  00013022                                   #              asm("movl _sgl_dummy1,r9");        /* r9  = expected value  */
1381  00013022    0d effffff390 59              movl _sgl_dummy1,r9
1382  00013029                                   #         } else
1383  00013029    11 14                         	jbr 	L391
1384  0001302B                                  L390:
1385  0001302B                                   #           if( halt_code == BAD_PSL_HLT ) {
1386  0001302B    1d ad04 03                    	cmpl	4(fp),$3
1387  0001302F    21 0e                         	jneq	L392
1388  00013031                                   #              asm("movl _exp_psl,r7");           /* r7  = expected PSL    */
1389  00013031    0d effffff381 57              movl _exp_psl,r7
1390  00013038                                   #              asm("movl _index,r7");             /* r8  = data index      */
1391  00013038    0d effffff37a 57              movl _index,r7
1392  0001303F                                   #         };
1393  0001303F                                  L392:
1394  0001303F                                  L391:
1395  0001303F                                  L389:
1396  0001303F                                   #         asm("halt");                            /* HALT ...              */
1397  0001303F    00                            halt
1398  00013040                                   # }  
1399  00013040    40                            	ret#2
1400  00013041                                  	.set	L384,0x0
1401  00013041                                  L386:
1402  00013041    13 ff55                       	jbr 	L387
1403  00000c8c *                                	.data
1403  00000c8c *                                	.data

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.