Browse Source
Be consistent in use of P_SET_OV macro for setting vxsat
pull/821/head
Scott Johnson
5 years ago
No known key found for this signature in database
GPG Key ID: 61C1F01D3D1410C9
18 changed files with
21 additions and
22 deletions
-
riscv/insns/vnclip_wi.h
-
riscv/insns/vnclip_wv.h
-
riscv/insns/vnclip_wx.h
-
riscv/insns/vnclipu_wi.h
-
riscv/insns/vnclipu_wv.h
-
riscv/insns/vnclipu_wx.h
-
riscv/insns/vsadd_vi.h
-
riscv/insns/vsadd_vv.h
-
riscv/insns/vsadd_vx.h
-
riscv/insns/vsaddu_vi.h
-
riscv/insns/vsaddu_vv.h
-
riscv/insns/vsaddu_vx.h
-
riscv/insns/vsmul_vv.h
-
riscv/insns/vsmul_vx.h
-
riscv/insns/vssub_vv.h
-
riscv/insns/vssub_vx.h
-
riscv/insns/vssubu_vv.h
-
riscv/insns/vssubu_vx.h
|
|
|
@ -15,10 +15,10 @@ VI_VVXI_LOOP_NARROW |
|
|
|
// saturation
|
|
|
|
if (result < int_min) { |
|
|
|
result = int_min; |
|
|
|
P.VU.vxsat = 1; |
|
|
|
P_SET_OV(1); |
|
|
|
} else if (result > int_max) { |
|
|
|
result = int_max; |
|
|
|
P.VU.vxsat = 1; |
|
|
|
P_SET_OV(1); |
|
|
|
} |
|
|
|
|
|
|
|
vd = result; |
|
|
|
|
|
|
|
@ -15,10 +15,10 @@ VI_VVXI_LOOP_NARROW |
|
|
|
// saturation
|
|
|
|
if (result < int_min) { |
|
|
|
result = int_min; |
|
|
|
P.VU.vxsat = 1; |
|
|
|
P_SET_OV(1); |
|
|
|
} else if (result > int_max) { |
|
|
|
result = int_max; |
|
|
|
P.VU.vxsat = 1; |
|
|
|
P_SET_OV(1); |
|
|
|
} |
|
|
|
|
|
|
|
vd = result; |
|
|
|
|
|
|
|
@ -15,10 +15,10 @@ VI_VVXI_LOOP_NARROW |
|
|
|
// saturation
|
|
|
|
if (result < int_min) { |
|
|
|
result = int_min; |
|
|
|
P.VU.vxsat = 1; |
|
|
|
P_SET_OV(1); |
|
|
|
} else if (result > int_max) { |
|
|
|
result = int_max; |
|
|
|
P.VU.vxsat = 1; |
|
|
|
P_SET_OV(1); |
|
|
|
} |
|
|
|
|
|
|
|
vd = result; |
|
|
|
|
|
|
|
@ -16,7 +16,7 @@ VI_VVXI_LOOP_NARROW |
|
|
|
// saturation
|
|
|
|
if (result & sign_mask) { |
|
|
|
result = uint_max; |
|
|
|
P.VU.vxsat = 1; |
|
|
|
P_SET_OV(1); |
|
|
|
} |
|
|
|
|
|
|
|
vd = result; |
|
|
|
|
|
|
|
@ -15,7 +15,7 @@ VI_VVXI_LOOP_NARROW |
|
|
|
// saturation
|
|
|
|
if (result & sign_mask) { |
|
|
|
result = uint_max; |
|
|
|
P.VU.vxsat = 1; |
|
|
|
P_SET_OV(1); |
|
|
|
} |
|
|
|
|
|
|
|
vd = result; |
|
|
|
|
|
|
|
@ -15,7 +15,7 @@ VI_VVXI_LOOP_NARROW |
|
|
|
// saturation
|
|
|
|
if (result & sign_mask) { |
|
|
|
result = uint_max; |
|
|
|
P.VU.vxsat = 1; |
|
|
|
P_SET_OV(1); |
|
|
|
} |
|
|
|
|
|
|
|
vd = result; |
|
|
|
|
|
|
|
@ -24,5 +24,5 @@ default: { |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
P.VU.vxsat |= sat; |
|
|
|
P_SET_OV(sat); |
|
|
|
VI_LOOP_END |
|
|
|
|
|
|
|
@ -24,6 +24,5 @@ default: { |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
P.VU.vxsat |= sat; |
|
|
|
P_SET_OV(sat); |
|
|
|
VI_LOOP_END |
|
|
|
|
|
|
|
|
|
|
|
@ -24,5 +24,5 @@ default: { |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
P.VU.vxsat |= sat; |
|
|
|
P_SET_OV(sat); |
|
|
|
VI_LOOP_END |
|
|
|
|
|
|
|
@ -7,5 +7,5 @@ VI_VI_ULOOP |
|
|
|
sat = vd < vs2; |
|
|
|
vd |= -(vd < vs2); |
|
|
|
|
|
|
|
P.VU.vxsat |= sat; |
|
|
|
P_SET_OV(sat); |
|
|
|
}) |
|
|
|
|
|
|
|
@ -7,5 +7,5 @@ VI_VV_ULOOP |
|
|
|
sat = vd < vs2; |
|
|
|
vd |= -(vd < vs2); |
|
|
|
|
|
|
|
P.VU.vxsat |= sat; |
|
|
|
P_SET_OV(sat); |
|
|
|
}) |
|
|
|
|
|
|
|
@ -7,6 +7,6 @@ VI_VX_ULOOP |
|
|
|
sat = vd < vs2; |
|
|
|
vd |= -(vd < vs2); |
|
|
|
|
|
|
|
P.VU.vxsat |= sat; |
|
|
|
P_SET_OV(sat); |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
@ -25,7 +25,7 @@ VI_VV_LOOP |
|
|
|
// saturation
|
|
|
|
if (overflow) { |
|
|
|
result = int_max; |
|
|
|
P.VU.vxsat |= 1; |
|
|
|
P_SET_OV(1); |
|
|
|
} |
|
|
|
|
|
|
|
vd = result; |
|
|
|
|
|
|
|
@ -26,7 +26,7 @@ VI_VX_LOOP |
|
|
|
// max saturation
|
|
|
|
if (overflow) { |
|
|
|
result = int_max; |
|
|
|
P.VU.vxsat |= 1; |
|
|
|
P_SET_OV(1); |
|
|
|
} |
|
|
|
|
|
|
|
vd = result; |
|
|
|
|
|
|
|
@ -25,5 +25,5 @@ default: { |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
P.VU.vxsat |= sat; |
|
|
|
P_SET_OV(sat); |
|
|
|
VI_LOOP_END |
|
|
|
|
|
|
|
@ -25,5 +25,5 @@ default: { |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
P.VU.vxsat |= sat; |
|
|
|
P_SET_OV(sat); |
|
|
|
VI_LOOP_END |
|
|
|
|
|
|
|
@ -25,6 +25,6 @@ default: { |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
P.VU.vxsat |= sat; |
|
|
|
P_SET_OV(sat); |
|
|
|
|
|
|
|
VI_LOOP_END |
|
|
|
|
|
|
|
@ -25,5 +25,5 @@ default: { |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
P.VU.vxsat |= sat; |
|
|
|
P_SET_OV(sat); |
|
|
|
VI_LOOP_END |
|
|
|
|