changes to make correct oversighst for XLEN=64 in Vector functions
This commit is contained in:
		| @@ -654,7 +654,7 @@ if(vector != null) {%> | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
|         } | ||||
|     } | ||||
|     void vector_slide1up(uint8_t* V, uint64_t vl, uint64_t vstart, softvector::vtype_t vtype, bool vm, unsigned vd, unsigned vs2, int64_t imm, uint8_t sew_val) { | ||||
|     void vector_slide1up(uint8_t* V, uint64_t vl, uint64_t vstart, softvector::vtype_t vtype, bool vm, unsigned vd, unsigned vs2, uint64_t imm, uint8_t sew_val) { | ||||
|         switch(sew_val){ | ||||
|             case 0b000: | ||||
|                 return softvector::vector_slide1up<${vlen}, uint8_t>(V, vl, vstart, vtype, vm, vd, vs2, imm); | ||||
| @@ -668,7 +668,7 @@ if(vector != null) {%> | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
|         } | ||||
|     } | ||||
|     void vector_slide1down(uint8_t* V, uint64_t vl, uint64_t vstart, softvector::vtype_t vtype, bool vm, unsigned vd, unsigned vs2, int64_t imm, uint8_t sew_val) { | ||||
|     void vector_slide1down(uint8_t* V, uint64_t vl, uint64_t vstart, softvector::vtype_t vtype, bool vm, unsigned vd, unsigned vs2, uint64_t imm, uint8_t sew_val) { | ||||
|         switch(sew_val){ | ||||
|             case 0b000: | ||||
|                 return softvector::vector_slide1down<${vlen}, uint8_t>(V, vl, vstart, vtype, vm, vd, vs2, imm); | ||||
| @@ -791,7 +791,7 @@ if(vector != null) {%> | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
|         } | ||||
|     } | ||||
|     void fp_vector_imm_op(uint8_t* V, uint8_t funct6, uint8_t funct3, uint64_t vl, uint64_t vstart, softvector::vtype_t vtype, bool vm, uint8_t vd, uint8_t vs2, int64_t imm, uint8_t rm, uint8_t sew_val){ | ||||
|     void fp_vector_imm_op(uint8_t* V, uint8_t funct6, uint8_t funct3, uint64_t vl, uint64_t vstart, softvector::vtype_t vtype, bool vm, uint8_t vd, uint8_t vs2, uint64_t imm, uint8_t rm, uint8_t sew_val){ | ||||
|         switch(sew_val){ | ||||
|             case 0b000: | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
| @@ -818,14 +818,14 @@ if(vector != null) {%> | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
|         } | ||||
|     } | ||||
|     void fp_vector_imm_wv(uint8_t* V, uint8_t funct6, uint8_t funct3, uint64_t vl, uint64_t vstart, softvector::vtype_t vtype, bool vm, uint8_t vd, uint8_t vs2, int64_t imm, uint8_t rm, uint8_t sew_val){ | ||||
|     void fp_vector_imm_wv(uint8_t* V, uint8_t funct6, uint8_t funct3, uint64_t vl, uint64_t vstart, softvector::vtype_t vtype, bool vm, uint8_t vd, uint8_t vs2, uint64_t imm, uint8_t rm, uint8_t sew_val){ | ||||
|         switch(sew_val){ | ||||
|             case 0b000: | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
|             case 0b001: | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
|             case 0b010: | ||||
|                 return softvector::fp_vector_imm_op<${vlen}, uint64_t, uint32_t>(V, funct6, funct3, vl, vstart, vtype, vm, vd, vs2, imm, rm); | ||||
|                 return softvector::fp_vector_imm_op<${vlen}, uint64_t, uint32_t, uint32_t>(V, funct6, funct3, vl, vstart, vtype, vm, vd, vs2, imm, rm); | ||||
|             case 0b011: // would widen to 128 bits | ||||
|             default: | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
| @@ -844,7 +844,7 @@ if(vector != null) {%> | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
|         } | ||||
|     } | ||||
|     void fp_vector_imm_ww(uint8_t* V, uint8_t funct6, uint8_t funct3, uint64_t vl, uint64_t vstart, softvector::vtype_t vtype, bool vm, uint8_t vd, uint8_t vs2, int64_t imm, uint8_t rm, uint8_t sew_val){ | ||||
|     void fp_vector_imm_ww(uint8_t* V, uint8_t funct6, uint8_t funct3, uint64_t vl, uint64_t vstart, softvector::vtype_t vtype, bool vm, uint8_t vd, uint8_t vs2, uint64_t imm, uint8_t rm, uint8_t sew_val){ | ||||
|         switch(sew_val){ | ||||
|             case 0b000: | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
| @@ -885,7 +885,7 @@ if(vector != null) {%> | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
|         } | ||||
|     } | ||||
|     void mask_fp_vector_imm_op(uint8_t* V, uint8_t funct6, uint64_t vl, uint64_t vstart, softvector::vtype_t vtype, bool vm, uint8_t vd, uint8_t vs2, int64_t imm, uint8_t rm, uint8_t sew_val){ | ||||
|     void mask_fp_vector_imm_op(uint8_t* V, uint8_t funct6, uint64_t vl, uint64_t vstart, softvector::vtype_t vtype, bool vm, uint8_t vd, uint8_t vs2, uint64_t imm, uint8_t rm, uint8_t sew_val){ | ||||
|         switch(sew_val){ | ||||
|             case 0b000: | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
| @@ -899,7 +899,7 @@ if(vector != null) {%> | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
|         } | ||||
|     } | ||||
|     void fp_vector_imm_merge(uint8_t* V, uint64_t vl, uint64_t vstart, softvector::vtype_t vtype, bool vm, uint8_t vd, uint8_t vs2, int64_t imm, uint8_t sew_val){ | ||||
|     void fp_vector_imm_merge(uint8_t* V, uint64_t vl, uint64_t vstart, softvector::vtype_t vtype, bool vm, uint8_t vd, uint8_t vs2, uint64_t imm, uint8_t sew_val){ | ||||
|         vector_imm_merge(V, vl, vstart, vtype, vm, vd, vs2, imm, sew_val); | ||||
|     } | ||||
|     void fp_vector_unary_w(uint8_t* V, uint8_t encoding_space, uint8_t unary_op, uint64_t vl, uint64_t vstart, softvector::vtype_t vtype, bool vm, uint8_t vd, uint8_t vs2, uint8_t rm, uint8_t sew_val){ | ||||
| @@ -907,7 +907,7 @@ if(vector != null) {%> | ||||
|             case 0b000: | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
|             case 0b001: | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
|                 return softvector::fp_vector_unary_op<${vlen}, uint32_t, uint16_t>(V, encoding_space, unary_op, vl, vstart, vtype, vm, vd, vs2, rm); | ||||
|             case 0b010: | ||||
|                 return softvector::fp_vector_unary_op<${vlen}, uint64_t, uint32_t>(V, encoding_space, unary_op, vl, vstart, vtype, vm, vd, vs2, rm); | ||||
|             case 0b011: // would widen to 128 bits | ||||
| @@ -920,11 +920,10 @@ if(vector != null) {%> | ||||
|             case 0b000: | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
|             case 0b001: | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
|                 return softvector::fp_vector_unary_op<${vlen}, uint16_t, uint32_t>(V, encoding_space, unary_op, vl, vstart, vtype, vm, vd, vs2, rm); | ||||
|             case 0b010: | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
|             case 0b011: | ||||
|                 return softvector::fp_vector_unary_op<${vlen}, uint32_t, uint64_t>(V, encoding_space, unary_op, vl, vstart, vtype, vm, vd, vs2, rm); | ||||
|             case 0b011: // would require 128 bit value to narrow | ||||
|             default: | ||||
|                 throw new std::runtime_error("Unsupported sew bit value"); | ||||
|         } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user