forked from Github_Repos/cvw
		
	qslc_r4a2 generator
This commit is contained in:
		
							parent
							
								
									0e64494e46
								
							
						
					
					
						commit
						dd4fa7c682
					
				
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -107,4 +107,6 @@ pipelined/config/rv64ic_orig
 | 
			
		||||
synthDC/Summary.csv
 | 
			
		||||
pipelined/srt/exptestgen
 | 
			
		||||
pipelined/srt/testgen
 | 
			
		||||
pipelined/srt/qst2
 | 
			
		||||
pipelined/srt/qslc_r4a2
 | 
			
		||||
pipelined/srt/qslc_r4a2.sv
 | 
			
		||||
pipelined/srt/testvectors
 | 
			
		||||
 | 
			
		||||
@ -1,2 +1,2 @@
 | 
			
		||||
vsim -do "do wally-pipelined.do rv32gc arch32f"
 | 
			
		||||
vsim -do "do wally-pipelined.do rv32gc arch32i"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@ add wave -noupdate /testbench/reset_ext
 | 
			
		||||
add wave -noupdate /testbench/memfilename
 | 
			
		||||
add wave -noupdate /testbench/dut/core/SATP_REGW
 | 
			
		||||
add wave -noupdate -group HDU -group hazards /testbench/dut/core/hzu/BPPredWrongE
 | 
			
		||||
add wave -noupdate -group HDU -group hazards /testbench/dut/core/hzu/CSRWritePendingDEM
 | 
			
		||||
add wave -noupdate -group HDU -group hazards /testbench/dut/core/hzu/CSRWriteFencePendingDEM
 | 
			
		||||
add wave -noupdate -group HDU -group hazards /testbench/dut/core/hzu/RetM
 | 
			
		||||
add wave -noupdate -group HDU -group hazards -color Pink /testbench/dut/core/hzu/TrapM
 | 
			
		||||
add wave -noupdate -group HDU -group hazards /testbench/dut/core/hzu/LoadStallD
 | 
			
		||||
@ -468,7 +468,7 @@ add wave -noupdate -group {debug trace} -expand -group wb /testbench/PCW
 | 
			
		||||
add wave -noupdate -group {pc selection} /testbench/dut/core/ifu/PCNext2F
 | 
			
		||||
add wave -noupdate -group {pc selection} /testbench/dut/core/ifu/PrivilegedNextPCM
 | 
			
		||||
add wave -noupdate -group {pc selection} /testbench/dut/core/ifu/PrivilegedChangePCM
 | 
			
		||||
add wave -noupdate -group ifu -color Gold /testbench/dut/core/lsu/bus/busdp/busfsm/BusCurrState
 | 
			
		||||
add wave -noupdate -group ifu -color Gold /testbench/dut/core/ifu/bus/busdp/busfsm/BusCurrState
 | 
			
		||||
add wave -noupdate -group ifu /testbench/dut/core/ifu/IFUBusRead
 | 
			
		||||
add wave -noupdate -group ifu /testbench/dut/core/ifu/IFUBusAdr
 | 
			
		||||
add wave -noupdate -group ifu /testbench/dut/core/ifu/IFUBusAck
 | 
			
		||||
 | 
			
		||||
@ -92,7 +92,7 @@ module uncore (
 | 
			
		||||
//  generate
 | 
			
		||||
    // on-chip RAM
 | 
			
		||||
    if (`RAM_SUPPORTED) begin : ram
 | 
			
		||||
      ram_orig #(
 | 
			
		||||
      ram #(
 | 
			
		||||
        .BASE(`RAM_BASE), .RANGE(`RAM_RANGE)) ram (
 | 
			
		||||
        .HCLK, .HRESETn, 
 | 
			
		||||
        .HSELRam, .HADDR,
 | 
			
		||||
 | 
			
		||||
@ -1,16 +1,19 @@
 | 
			
		||||
all: sqrttestgen testgen qst2
 | 
			
		||||
all: exptestgen testgen qslc_r4a2
 | 
			
		||||
 | 
			
		||||
sqrttestgen: sqrttestgen.c
 | 
			
		||||
	gcc sqrttestgen.c -lm -o sqrttestgen
 | 
			
		||||
 | 
			
		||||
testgen: testgen.c
 | 
			
		||||
	gcc testgen.c -lm -o testgen
 | 
			
		||||
 | 
			
		||||
qst2: qst2.c
 | 
			
		||||
	gcc qst2.c -lm -o qst2
 | 
			
		||||
	gcc -lm -o testgen testgen.c
 | 
			
		||||
	./testgen
 | 
			
		||||
 | 
			
		||||
exptestgen: exptestgen.c
 | 
			
		||||
	gcc -lm -o exptestgen exptestgen.c
 | 
			
		||||
	./exptestgen
 | 
			
		||||
 | 
			
		||||
qslc_r4a2: qslc_r4a2.c
 | 
			
		||||
	gcc qslc_r4a2.c -lm -o qslc_r4a2
 | 
			
		||||
	./qslc_r4a2 >> qslc_r4a2.sv
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	rm -f testgen exptestgen qslc_r4a2 
 | 
			
		||||
							
								
								
									
										202
									
								
								pipelined/srt/qslc_r4a2.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										202
									
								
								pipelined/srt/qslc_r4a2.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,202 @@
 | 
			
		||||
/*
 | 
			
		||||
  Program:      qslc_r4a2.c
 | 
			
		||||
  Description:  Prints out Quotient Selection Table (assumes CPA is utilized to reduce memory)
 | 
			
		||||
  User:         James E. Stine
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <math.h>
 | 
			
		||||
 | 
			
		||||
#define DIVISOR_SIZE 3
 | 
			
		||||
#define CARRY_SIZE 7
 | 
			
		||||
#define SUM_SIZE 7
 | 
			
		||||
#define TOT_SIZE 7
 | 
			
		||||
 | 
			
		||||
void disp_binary(double, int, int);
 | 
			
		||||
 | 
			
		||||
struct bits {
 | 
			
		||||
  unsigned int divisor : DIVISOR_SIZE;
 | 
			
		||||
  int tot : TOT_SIZE;
 | 
			
		||||
} pla;
 | 
			
		||||
 | 
			
		||||
/* 
 | 
			
		||||
 | 
			
		||||
   Function:      disp_binary
 | 
			
		||||
   Description:   This function displays a Double-Precision number into
 | 
			
		||||
                  four 16 bit integers using the global union variable 
 | 
			
		||||
		  dp_number
 | 
			
		||||
   Argument List: double x            The value to be converted
 | 
			
		||||
                  int bits_to_left    Number of bits left of radix point
 | 
			
		||||
		  int bits_to_right   Number of bits right of radix point
 | 
			
		||||
   Return value:  none
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
void disp_binary(double x, int bits_to_left, int bits_to_right) {
 | 
			
		||||
  int i; 
 | 
			
		||||
  double diff;
 | 
			
		||||
 | 
			
		||||
  if (fabs(x) <  pow(2.0, ((double) -bits_to_right)) ) {
 | 
			
		||||
    for (i = -bits_to_left + 1; i <= bits_to_right; i++) {
 | 
			
		||||
      printf("0");
 | 
			
		||||
    }
 | 
			
		||||
    if (i == bits_to_right+1) 
 | 
			
		||||
      printf(" ");
 | 
			
		||||
    
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (x < 0.0) 
 | 
			
		||||
    x = pow(2.0, ((double) bits_to_left)) + x;
 | 
			
		||||
 | 
			
		||||
  for (i = -bits_to_left + 1; i <= bits_to_right; i++) {
 | 
			
		||||
    diff = pow(2.0, ((double) -i) );
 | 
			
		||||
    if (x < diff) 
 | 
			
		||||
      printf("0");
 | 
			
		||||
    else {
 | 
			
		||||
      printf("1");
 | 
			
		||||
      x -= diff;
 | 
			
		||||
    }
 | 
			
		||||
    //if (i == 0) 
 | 
			
		||||
      //printf(" ");
 | 
			
		||||
    
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int main() {
 | 
			
		||||
  int m;
 | 
			
		||||
  int n;
 | 
			
		||||
  int o;
 | 
			
		||||
  pla.divisor = 0;
 | 
			
		||||
  pla.tot = 0;
 | 
			
		||||
 | 
			
		||||
  printf("  case({D[5:3],Wmsbs})");
 | 
			
		||||
  printf(" \n");
 | 
			
		||||
  for (o=0; o < pow(2.0, DIVISOR_SIZE); o++) {
 | 
			
		||||
    for (m=0; m < pow(2.0, TOT_SIZE); m++) {
 | 
			
		||||
		printf("   10'b");
 | 
			
		||||
		disp_binary((double) pla.divisor, DIVISOR_SIZE, 0);
 | 
			
		||||
		printf("_");
 | 
			
		||||
		disp_binary((double) pla.tot, TOT_SIZE, 0);
 | 
			
		||||
		printf(": q = 4'b");
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		4 bits for Radix 4 (a=2)
 | 
			
		||||
		1000 = +2
 | 
			
		||||
		0100 = +1
 | 
			
		||||
		0000 =  0
 | 
			
		||||
		0010 = -1
 | 
			
		||||
		0001 = -2
 | 
			
		||||
		
 | 
			
		||||
		*/
 | 
			
		||||
 | 
			
		||||
		switch (pla.divisor) {
 | 
			
		||||
			case 0:
 | 
			
		||||
				if ((pla.tot) >= 12)
 | 
			
		||||
					printf("1000");
 | 
			
		||||
				else if ((pla.tot) >= 4)
 | 
			
		||||
					printf("0100");
 | 
			
		||||
				else if ((pla.tot) >= -4)
 | 
			
		||||
					printf("0000");
 | 
			
		||||
				else if ((pla.tot) >= -13)
 | 
			
		||||
					printf("0010");
 | 
			
		||||
				else
 | 
			
		||||
					printf("0001");
 | 
			
		||||
				break;
 | 
			
		||||
			case 1:
 | 
			
		||||
				if ((pla.tot) >= 14)
 | 
			
		||||
					printf("1000");
 | 
			
		||||
				else if ((pla.tot) >= 4)
 | 
			
		||||
					printf("0100");
 | 
			
		||||
				else if ((pla.tot) >= -6)
 | 
			
		||||
					printf("0000");
 | 
			
		||||
				else if ((pla.tot) >= -15)
 | 
			
		||||
					printf("0010");
 | 
			
		||||
				else
 | 
			
		||||
					printf("0001");
 | 
			
		||||
				break;
 | 
			
		||||
			case 2:
 | 
			
		||||
				if ((pla.tot) >= 15)
 | 
			
		||||
					printf("1000");
 | 
			
		||||
				else if ((pla.tot) >= 4)
 | 
			
		||||
					printf("0100");
 | 
			
		||||
				else if ((pla.tot) >= -6)
 | 
			
		||||
					printf("0000");
 | 
			
		||||
				else if ((pla.tot) >= -16)
 | 
			
		||||
					printf("0010");
 | 
			
		||||
				else
 | 
			
		||||
					printf("0001");
 | 
			
		||||
				break;
 | 
			
		||||
			case 3:
 | 
			
		||||
			if ((pla.tot) >= 16)
 | 
			
		||||
					printf("1000");
 | 
			
		||||
				else if ((pla.tot) >= 4)
 | 
			
		||||
					printf("0100");
 | 
			
		||||
				else if ((pla.tot) >= -6)
 | 
			
		||||
					printf("0000");
 | 
			
		||||
				else if ((pla.tot) >= -18)
 | 
			
		||||
					printf("0010");
 | 
			
		||||
				else
 | 
			
		||||
					printf("0001");
 | 
			
		||||
				break;
 | 
			
		||||
			case 4:
 | 
			
		||||
				if ((pla.tot) >= 18)
 | 
			
		||||
					printf("1000");
 | 
			
		||||
				else if ((pla.tot) >= 6)
 | 
			
		||||
					printf("0100");
 | 
			
		||||
				else if ((pla.tot) >= -8)
 | 
			
		||||
					printf("0000");
 | 
			
		||||
				else if ((pla.tot) >= -20)
 | 
			
		||||
					printf("0010");
 | 
			
		||||
				else
 | 
			
		||||
					printf("0001");
 | 
			
		||||
				break;
 | 
			
		||||
			case 5:
 | 
			
		||||
				if ((pla.tot) >= 20)
 | 
			
		||||
					printf("1000");
 | 
			
		||||
				else if ((pla.tot) >= 6)
 | 
			
		||||
					printf("0100");
 | 
			
		||||
				else if ((pla.tot) >= -8)
 | 
			
		||||
					printf("0000");
 | 
			
		||||
				else if ((pla.tot) >= -20)
 | 
			
		||||
					printf("0010");
 | 
			
		||||
				else
 | 
			
		||||
					printf("0001");
 | 
			
		||||
				break;
 | 
			
		||||
			case 6:
 | 
			
		||||
				if ((pla.tot) >= 20)
 | 
			
		||||
					printf("1000");
 | 
			
		||||
				else if ((pla.tot) >= 8)
 | 
			
		||||
					printf("0100");
 | 
			
		||||
				else if ((pla.tot) >= -8)
 | 
			
		||||
					printf("0000");
 | 
			
		||||
				else if ((pla.tot) >= -22)
 | 
			
		||||
					printf("0010");
 | 
			
		||||
				else
 | 
			
		||||
					printf("0001");
 | 
			
		||||
				break;
 | 
			
		||||
			case 7:
 | 
			
		||||
				if ((pla.tot) >= 24)
 | 
			
		||||
					printf("1000");
 | 
			
		||||
				else if ((pla.tot) >= 8)
 | 
			
		||||
					printf("0100");
 | 
			
		||||
				else if ((pla.tot) >= -8)
 | 
			
		||||
					printf("0000");
 | 
			
		||||
				else if ((pla.tot) >= -24)
 | 
			
		||||
					printf("0010");
 | 
			
		||||
				else
 | 
			
		||||
					printf("0001");
 | 
			
		||||
				break;
 | 
			
		||||
			default: printf ("XXX");
 | 
			
		||||
			
 | 
			
		||||
		}
 | 
			
		||||
			
 | 
			
		||||
		printf(";\n");
 | 
			
		||||
		(pla.tot)++;
 | 
			
		||||
	}
 | 
			
		||||
	(pla.divisor)++;
 | 
			
		||||
  }
 | 
			
		||||
  printf("  endcase\n");
 | 
			
		||||
}
 | 
			
		||||
@ -1,201 +0,0 @@
 | 
			
		||||
/*
 | 
			
		||||
  Program:      qst2.c
 | 
			
		||||
  Description:  Prints out QST (assumes CPA is utilized to reduce memory)
 | 
			
		||||
  User:         James E. Stine
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <math.h>
 | 
			
		||||
 | 
			
		||||
#define DIVISOR_SIZE 3
 | 
			
		||||
#define CARRY_SIZE 7
 | 
			
		||||
#define SUM_SIZE 7
 | 
			
		||||
#define TOT_SIZE 7
 | 
			
		||||
 | 
			
		||||
void disp_binary(double, int, int);
 | 
			
		||||
 | 
			
		||||
struct bits {
 | 
			
		||||
  unsigned int divisor : DIVISOR_SIZE;
 | 
			
		||||
  int tot : TOT_SIZE;
 | 
			
		||||
} pla;
 | 
			
		||||
 | 
			
		||||
/* 
 | 
			
		||||
 | 
			
		||||
   Function:      disp_binary
 | 
			
		||||
   Description:   This function displays a Double-Precision number into
 | 
			
		||||
                  four 16 bit integers using the global union variable 
 | 
			
		||||
		  dp_number
 | 
			
		||||
   Argument List: double x            The value to be converted
 | 
			
		||||
                  int bits_to_left    Number of bits left of radix point
 | 
			
		||||
		  int bits_to_right   Number of bits right of radix point
 | 
			
		||||
   Return value:  none
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
void disp_binary(double x, int bits_to_left, int bits_to_right) {
 | 
			
		||||
  int i; 
 | 
			
		||||
  double diff;
 | 
			
		||||
 | 
			
		||||
  if (fabs(x) <  pow(2.0, ((double) -bits_to_right)) ) {
 | 
			
		||||
    for (i = -bits_to_left + 1; i <= bits_to_right; i++) {
 | 
			
		||||
      printf("0");
 | 
			
		||||
    }
 | 
			
		||||
    if (i == bits_to_right+1) 
 | 
			
		||||
      printf(" ");
 | 
			
		||||
    
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (x < 0.0) 
 | 
			
		||||
    x = pow(2.0, ((double) bits_to_left)) + x;
 | 
			
		||||
 | 
			
		||||
  for (i = -bits_to_left + 1; i <= bits_to_right; i++) {
 | 
			
		||||
    diff = pow(2.0, ((double) -i) );
 | 
			
		||||
    if (x < diff) 
 | 
			
		||||
      printf("0");
 | 
			
		||||
    else {
 | 
			
		||||
      printf("1");
 | 
			
		||||
      x -= diff;
 | 
			
		||||
    }
 | 
			
		||||
    if (i == 0) 
 | 
			
		||||
      printf(" ");
 | 
			
		||||
    
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int main() {
 | 
			
		||||
 | 
			
		||||
  int m;
 | 
			
		||||
  int n;
 | 
			
		||||
  int o;
 | 
			
		||||
  pla.divisor = 0;
 | 
			
		||||
  pla.tot = 0;
 | 
			
		||||
 | 
			
		||||
  for (o=0; o < pow(2.0, DIVISOR_SIZE); o++) {
 | 
			
		||||
    for (m=0; m < pow(2.0, TOT_SIZE); m++) {
 | 
			
		||||
	disp_binary((double) pla.divisor, DIVISOR_SIZE, 0);
 | 
			
		||||
	disp_binary((double) pla.tot, TOT_SIZE, 0);
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	  4 bits for Radix 4 (a=2)
 | 
			
		||||
	  1000 = +2
 | 
			
		||||
	  0100 = +1
 | 
			
		||||
	  0000 =  0
 | 
			
		||||
	  0010 = -1
 | 
			
		||||
	  0001 = -2
 | 
			
		||||
	  
 | 
			
		||||
	*/
 | 
			
		||||
 | 
			
		||||
	switch (pla.divisor) {
 | 
			
		||||
 | 
			
		||||
	case 0:
 | 
			
		||||
	  if ((pla.tot) >= 12)
 | 
			
		||||
	    printf(" 1000");
 | 
			
		||||
	  else if ((pla.tot) >= 4)
 | 
			
		||||
	    printf(" 0100");
 | 
			
		||||
	  else if ((pla.tot) >= -4)
 | 
			
		||||
	    printf(" 0000");
 | 
			
		||||
	  else if ((pla.tot) >= -13)
 | 
			
		||||
	    printf(" 0010");
 | 
			
		||||
	  else
 | 
			
		||||
	    printf(" 0001");
 | 
			
		||||
	  break;
 | 
			
		||||
	case 1:
 | 
			
		||||
	  if ((pla.tot) >= 14)
 | 
			
		||||
	    printf(" 1000");
 | 
			
		||||
	  else if ((pla.tot) >= 4)
 | 
			
		||||
	    printf(" 0100");
 | 
			
		||||
	  else if ((pla.tot) >= -6)
 | 
			
		||||
	    printf(" 0000");
 | 
			
		||||
	  else if ((pla.tot) >= -15)
 | 
			
		||||
	    printf(" 0010");
 | 
			
		||||
	  else
 | 
			
		||||
	    printf(" 0001");
 | 
			
		||||
	  break;
 | 
			
		||||
	case 2:
 | 
			
		||||
	  if ((pla.tot) >= 15)
 | 
			
		||||
	    printf(" 1000");
 | 
			
		||||
	  else if ((pla.tot) >= 4)
 | 
			
		||||
	    printf(" 0100");
 | 
			
		||||
	  else if ((pla.tot) >= -6)
 | 
			
		||||
	    printf(" 0000");
 | 
			
		||||
	  else if ((pla.tot) >= -16)
 | 
			
		||||
	    printf(" 0010");
 | 
			
		||||
	  else
 | 
			
		||||
	    printf(" 0001");
 | 
			
		||||
	  break;
 | 
			
		||||
	case 3:
 | 
			
		||||
	  if ((pla.tot) >= 16)
 | 
			
		||||
	    printf(" 1000");
 | 
			
		||||
	  else if ((pla.tot) >= 4)
 | 
			
		||||
	    printf(" 0100");
 | 
			
		||||
	  else if ((pla.tot) >= -6)
 | 
			
		||||
	    printf(" 0000");
 | 
			
		||||
	  else if ((pla.tot) >= -18)
 | 
			
		||||
	    printf(" 0010");
 | 
			
		||||
	  else
 | 
			
		||||
	    printf(" 0001");
 | 
			
		||||
	  break;
 | 
			
		||||
	case 4:
 | 
			
		||||
	  if ((pla.tot) >= 18)
 | 
			
		||||
	    printf(" 1000");
 | 
			
		||||
	  else if ((pla.tot) >= 6)
 | 
			
		||||
	    printf(" 0100");
 | 
			
		||||
	  else if ((pla.tot) >= -8)
 | 
			
		||||
	    printf(" 0000");
 | 
			
		||||
	  else if ((pla.tot) >= -20)
 | 
			
		||||
	    printf(" 0010");
 | 
			
		||||
	  else
 | 
			
		||||
	    printf(" 0001");
 | 
			
		||||
	  break;
 | 
			
		||||
	case 5:
 | 
			
		||||
	  if ((pla.tot) >= 20)
 | 
			
		||||
	    printf(" 1000");
 | 
			
		||||
	  else if ((pla.tot) >= 6)
 | 
			
		||||
	    printf(" 0100");
 | 
			
		||||
	  else if ((pla.tot) >= -8)
 | 
			
		||||
	    printf(" 0000");
 | 
			
		||||
	  else if ((pla.tot) >= -20)
 | 
			
		||||
	    printf(" 0010");
 | 
			
		||||
	  else
 | 
			
		||||
	    printf(" 0001");
 | 
			
		||||
	  break;
 | 
			
		||||
	case 6:
 | 
			
		||||
	  if ((pla.tot) >= 20)
 | 
			
		||||
	    printf(" 1000");
 | 
			
		||||
	  else if ((pla.tot) >= 8)
 | 
			
		||||
	    printf(" 0100");
 | 
			
		||||
	  else if ((pla.tot) >= -8)
 | 
			
		||||
	    printf(" 0000");
 | 
			
		||||
	  else if ((pla.tot) >= -22)
 | 
			
		||||
	    printf(" 0010");
 | 
			
		||||
	  else
 | 
			
		||||
	    printf(" 0001");
 | 
			
		||||
	  break;
 | 
			
		||||
	case 7:
 | 
			
		||||
	  if ((pla.tot) >= 24)
 | 
			
		||||
	    printf(" 1000");
 | 
			
		||||
	  else if ((pla.tot) >= 8)
 | 
			
		||||
	    printf(" 0100");
 | 
			
		||||
	  else if ((pla.tot) >= -8)
 | 
			
		||||
	    printf(" 0000");
 | 
			
		||||
	  else if ((pla.tot) >= -24)
 | 
			
		||||
	    printf(" 0010");
 | 
			
		||||
	  else
 | 
			
		||||
	    printf(" 0001");
 | 
			
		||||
	  break;
 | 
			
		||||
	default:
 | 
			
		||||
	  printf (" XXX");
 | 
			
		||||
	  
 | 
			
		||||
	}
 | 
			
		||||
	  
 | 
			
		||||
	printf("\n");
 | 
			
		||||
	(pla.tot)++;
 | 
			
		||||
    }
 | 
			
		||||
    (pla.divisor)++;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user