Skip to content

Commit 94690d0

Browse files
pablodelaratkanteck
authored andcommitted
Remove 32-bit x86 architecture support
As already announced in issue #296, we are removing 32-bit x86 support, which was not being validated anyway. Signed-off-by: Pablo de Lara <[email protected]>
1 parent 8045bee commit 94690d0

28 files changed

+298
-2370
lines changed

Makefile.am

-12
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,13 @@ perf_tests_extra=
2626
examples=
2727
other_tests=
2828
other_tests_x86_64=
29-
other_tests_x86_32=
30-
other_tests_aarch64=
3129
other_tests_ppc64le=
3230
other_tests_riscv64=
3331
lsrc_x86_64=
34-
lsrc_x86_32=
3532
lsrc_aarch64=
3633
lsrc_ppc64le=
3734
lsrc_riscv64=
3835
lsrc_base_aliases=
39-
lsrc32=
40-
unit_tests32=
41-
perf_tests32=
4236
progs=
4337

4438
# Include units
@@ -67,12 +61,6 @@ libisal_la_SOURCES += ${lsrc_x86_64}
6761
other_tests += ${other_tests_x86_64}
6862
endif
6963

70-
if CPU_X86_32
71-
ARCH=-Dx86_32
72-
libisal_la_SOURCES += ${lsrc_x86_32}
73-
other_tests += ${other_tests_x86_32}
74-
endif
75-
7664
if CPU_AARCH64
7765
ARCH=-Daarch64
7866
libisal_la_SOURCES += ${lsrc_aarch64}

Release_notes.txt

+1-4
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@ RELEASE NOTE CONTENTS
99
1. KNOWN ISSUES
1010
----------------
1111

12-
* 32-bit lib is not supported in Windows.
13-
14-
* 32-bit lib is not validated.
15-
1612
2. FIXED ISSUES
1713
---------------
1814
v2.31.1
@@ -143,6 +139,7 @@ v2.32
143139

144140
* General:
145141
- Minimum NASM version required for x86 architecture is 2.14.01 now.
142+
- 32-bit x86 support has been removed.
146143

147144
* RISCV support.
148145
- Initial riscv64 support with runtime and build-time CPU feature detection.

configure.ac

-7
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,13 @@ CPU=""
2626
AS_CASE([$host_cpu],
2727
[x86_64], [CPU="x86_64"],
2828
[amd64], [CPU="x86_64"],
29-
[i?86], [CPU="x86_32"],
3029
[aarch64], [CPU="aarch64"],
3130
[arm64], [CPU="aarch64"],
3231
[powerpc64le], [CPU="ppc64le"],
3332
[ppc64le], [CPU="ppc64le"],
3433
[riscv64], [CPU="riscv64"],
3534
)
3635
AM_CONDITIONAL([CPU_X86_64], [test "$CPU" = "x86_64"])
37-
AM_CONDITIONAL([CPU_X86_32], [test "$CPU" = "x86_32"])
3836
AM_CONDITIONAL([CPU_AARCH64], [test "$CPU" = "aarch64"])
3937
AM_CONDITIONAL([CPU_PPC64LE], [test "$CPU" = "ppc64le"])
4038
AM_CONDITIONAL([CPU_RISCV64], [test "$CPU" = "riscv64"])
@@ -57,11 +55,6 @@ case "${CPU}" in
5755
is_x86=yes
5856
;;
5957

60-
x86_32)
61-
62-
is_x86=yes
63-
;;
64-
6558
riscv64)
6659

6760
AC_MSG_CHECKING([checking RVV support])

crc/Makefile.am

-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ lsrc += \
3434
crc/crc64_base.c
3535

3636
lsrc_base_aliases += crc/crc_base_aliases.c
37-
lsrc_x86_32 += crc/crc_base_aliases.c
3837
lsrc_ppc64le += crc/crc_base_aliases.c
3938
lsrc_riscv64 += crc/crc_base_aliases.c
4039

erasure_code/Makefile.am

-29
Original file line numberDiff line numberDiff line change
@@ -113,35 +113,6 @@ lsrc_x86_64 += \
113113
erasure_code/gf_5vect_mad_avx512_gfni.asm \
114114
erasure_code/gf_6vect_mad_avx512_gfni.asm
115115

116-
lsrc_x86_32 += \
117-
erasure_code/ec_highlevel_func.c \
118-
erasure_code/ec_multibinary.asm \
119-
erasure_code/gf_vect_dot_prod_avx.asm \
120-
erasure_code/gf_2vect_dot_prod_avx.asm \
121-
erasure_code/gf_3vect_dot_prod_avx.asm \
122-
erasure_code/gf_4vect_dot_prod_avx.asm \
123-
erasure_code/gf_vect_dot_prod_sse.asm \
124-
erasure_code/gf_2vect_dot_prod_sse.asm \
125-
erasure_code/gf_3vect_dot_prod_sse.asm \
126-
erasure_code/gf_4vect_dot_prod_sse.asm \
127-
erasure_code/gf_vect_dot_prod_avx2.asm \
128-
erasure_code/gf_2vect_dot_prod_avx2.asm \
129-
erasure_code/gf_3vect_dot_prod_avx2.asm \
130-
erasure_code/gf_4vect_dot_prod_avx2.asm
131-
132-
unit_tests32 += erasure_code/erasure_code_base_test \
133-
erasure_code/erasure_code_test \
134-
erasure_code/gf_vect_mul_test \
135-
erasure_code/gf_vect_mul_base_test \
136-
erasure_code/gf_vect_dot_prod_base_test \
137-
erasure_code/gf_vect_dot_prod_test
138-
139-
perf_tests32 += erasure_code/gf_vect_mul_perf \
140-
erasure_code/gf_vect_dot_prod_perf \
141-
erasure_code/erasure_code_perf \
142-
erasure_code/erasure_code_base_perf \
143-
erasure_code/gf_vect_dot_prod_1tbl
144-
145116
src_include += -I $(srcdir)/erasure_code
146117
extern_hdrs += include/erasure_code.h \
147118
include/gf_vect_mul.h

erasure_code/ec_multibinary.asm

+20-34
Original file line numberDiff line numberDiff line change
@@ -30,26 +30,22 @@
3030
%include "reg_sizes.asm"
3131
%include "multibinary.asm"
3232

33-
%ifidn __OUTPUT_FORMAT__, elf32
34-
[bits 32]
35-
%else
36-
default rel
37-
[bits 64]
33+
default rel
34+
[bits 64]
3835

39-
extern ec_encode_data_update_sse
40-
extern ec_encode_data_update_avx
41-
extern ec_encode_data_update_avx2
42-
extern ec_encode_data_avx512
43-
extern gf_vect_dot_prod_avx512
44-
extern ec_encode_data_update_avx512
45-
extern gf_vect_mad_avx512
46-
extern gf_vect_mul_sse
47-
extern gf_vect_mul_avx
36+
extern ec_encode_data_update_sse
37+
extern ec_encode_data_update_avx
38+
extern ec_encode_data_update_avx2
39+
extern ec_encode_data_avx512
40+
extern gf_vect_dot_prod_avx512
41+
extern ec_encode_data_update_avx512
42+
extern gf_vect_mad_avx512
43+
extern gf_vect_mul_sse
44+
extern gf_vect_mul_avx
4845

49-
extern gf_vect_mad_sse
50-
extern gf_vect_mad_avx
51-
extern gf_vect_mad_avx2
52-
%endif
46+
extern gf_vect_mad_sse
47+
extern gf_vect_mad_avx
48+
extern gf_vect_mad_avx2
5349

5450
extern ec_init_tables_gfni
5551
extern ec_encode_data_avx512_gfni
@@ -79,19 +75,9 @@ mbin_interface ec_encode_data_update
7975
mbin_interface gf_vect_mad
8076
mbin_interface ec_init_tables
8177

82-
%ifidn __OUTPUT_FORMAT__, elf32
83-
mbin_dispatch_init5 ec_encode_data, ec_encode_data_base, ec_encode_data_sse, ec_encode_data_avx, ec_encode_data_avx2
84-
mbin_dispatch_init5 gf_vect_dot_prod, gf_vect_dot_prod_base, gf_vect_dot_prod_sse, gf_vect_dot_prod_avx, gf_vect_dot_prod_avx2
85-
mbin_dispatch_init2 gf_vect_mul, gf_vect_mul_base
86-
mbin_dispatch_init2 ec_encode_data_update, ec_encode_data_update_base
87-
mbin_dispatch_init2 gf_vect_mad, gf_vect_mad_base
88-
mbin_dispatch_init2 ec_init_tables, ec_init_tables_base
89-
%else
90-
91-
mbin_dispatch_init5 gf_vect_mul, gf_vect_mul_base, gf_vect_mul_sse, gf_vect_mul_avx, gf_vect_mul_avx
92-
mbin_dispatch_init8 ec_encode_data, ec_encode_data_base, ec_encode_data_sse, ec_encode_data_avx, ec_encode_data_avx2, ec_encode_data_avx512, ec_encode_data_avx2_gfni, ec_encode_data_avx512_gfni
93-
mbin_dispatch_init8 ec_encode_data_update, ec_encode_data_update_base, ec_encode_data_update_sse, ec_encode_data_update_avx, ec_encode_data_update_avx2, ec_encode_data_update_avx512, ec_encode_data_update_avx2_gfni, ec_encode_data_update_avx512_gfni
94-
mbin_dispatch_init6 gf_vect_mad, gf_vect_mad_base, gf_vect_mad_sse, gf_vect_mad_avx, gf_vect_mad_avx2, gf_vect_mad_avx512
95-
mbin_dispatch_init6 gf_vect_dot_prod, gf_vect_dot_prod_base, gf_vect_dot_prod_sse, gf_vect_dot_prod_avx, gf_vect_dot_prod_avx2, gf_vect_dot_prod_avx512
96-
mbin_dispatch_init8 ec_init_tables, ec_init_tables_base, ec_init_tables_base, ec_init_tables_base, ec_init_tables_base, ec_init_tables_base, ec_init_tables_gfni, ec_init_tables_gfni
97-
%endif
78+
mbin_dispatch_init5 gf_vect_mul, gf_vect_mul_base, gf_vect_mul_sse, gf_vect_mul_avx, gf_vect_mul_avx
79+
mbin_dispatch_init8 ec_encode_data, ec_encode_data_base, ec_encode_data_sse, ec_encode_data_avx, ec_encode_data_avx2, ec_encode_data_avx512, ec_encode_data_avx2_gfni, ec_encode_data_avx512_gfni
80+
mbin_dispatch_init8 ec_encode_data_update, ec_encode_data_update_base, ec_encode_data_update_sse, ec_encode_data_update_avx, ec_encode_data_update_avx2, ec_encode_data_update_avx512, ec_encode_data_update_avx2_gfni, ec_encode_data_update_avx512_gfni
81+
mbin_dispatch_init6 gf_vect_mad, gf_vect_mad_base, gf_vect_mad_sse, gf_vect_mad_avx, gf_vect_mad_avx2, gf_vect_mad_avx512
82+
mbin_dispatch_init6 gf_vect_dot_prod, gf_vect_dot_prod_base, gf_vect_dot_prod_sse, gf_vect_dot_prod_avx, gf_vect_dot_prod_avx2, gf_vect_dot_prod_avx512
83+
mbin_dispatch_init8 ec_init_tables, ec_init_tables_base, ec_init_tables_base, ec_init_tables_base, ec_init_tables_base, ec_init_tables_base, ec_init_tables_gfni, ec_init_tables_gfni

erasure_code/gf_2vect_dot_prod_avx.asm

+12-110
Original file line numberDiff line numberDiff line change
@@ -105,74 +105,6 @@
105105
%endmacro
106106
%endif
107107

108-
%ifidn __OUTPUT_FORMAT__, elf32
109-
110-
;;;================== High Address;
111-
;;; arg4
112-
;;; arg3
113-
;;; arg2
114-
;;; arg1
115-
;;; arg0
116-
;;; return
117-
;;;<================= esp of caller
118-
;;; ebp
119-
;;;<================= ebp = esp
120-
;;; var0
121-
;;; esi
122-
;;; edi
123-
;;; ebx
124-
;;;<================= esp of callee
125-
;;;
126-
;;;================== Low Address;
127-
128-
%define PS 4
129-
%define LOG_PS 2
130-
%define func(x) x: endbranch
131-
%define arg(x) [ebp + PS*2 + PS*x]
132-
%define var(x) [ebp - PS - PS*x]
133-
134-
%define trans ecx
135-
%define trans2 esi
136-
%define arg0 trans ;trans and trans2 are for the variables in stack
137-
%define arg0_m arg(0)
138-
%define arg1 ebx
139-
%define arg2 arg2_m
140-
%define arg2_m arg(2)
141-
%define arg3 trans
142-
%define arg3_m arg(3)
143-
%define arg4 trans
144-
%define arg4_m arg(4)
145-
%define tmp edx
146-
%define tmp2 edi
147-
%define tmp3 trans2
148-
%define tmp4 trans2
149-
%define tmp4_m var(0)
150-
%define return eax
151-
%macro SLDR 2 ;; stack load/restore
152-
mov %1, %2
153-
%endmacro
154-
%define SSTR SLDR
155-
156-
%macro FUNC_SAVE 0
157-
push ebp
158-
mov ebp, esp
159-
sub esp, PS*1 ;1 local variable
160-
push esi
161-
push edi
162-
push ebx
163-
mov arg1, arg(1)
164-
%endmacro
165-
166-
%macro FUNC_RESTORE 0
167-
pop ebx
168-
pop edi
169-
pop esi
170-
add esp, PS*1 ;1 local variable
171-
pop ebp
172-
%endmacro
173-
174-
%endif ; output formats
175-
176108
%define len arg0
177109
%define vec arg1
178110
%define mul_array arg2
@@ -184,13 +116,6 @@
184116
%define dest2 tmp4
185117
%define pos return
186118

187-
%ifidn PS,4 ;32-bit code
188-
%define len_m arg0_m
189-
%define src_m arg3_m
190-
%define dest1_m arg4_m
191-
%define dest2_m tmp4_m
192-
%endif
193-
194119
%ifndef EC_ALIGNED_ADDR
195120
;;; Use Un-aligned load/store
196121
%define XLDR vmovdqu
@@ -206,36 +131,21 @@
206131
%endif
207132
%endif
208133

209-
%ifidn PS,8 ; 64-bit code
210-
default rel
211-
[bits 64]
212-
%endif
134+
default rel
135+
[bits 64]
213136

214137
section .text
215138

216-
%ifidn PS,8 ;64-bit code
217-
%define xmask0f xmm8
218-
%define xgft1_lo xmm7
219-
%define xgft1_hi xmm6
220-
%define xgft2_lo xmm5
221-
%define xgft2_hi xmm4
222-
223-
%define x0 xmm0
224-
%define xtmpa xmm1
225-
%define xp1 xmm2
226-
%define xp2 xmm3
227-
%else ;32-bit code
228-
%define xmask0f xmm4
229-
%define xgft1_lo xmm7
230-
%define xgft1_hi xmm6
231-
%define xgft2_lo xgft1_lo
232-
%define xgft2_hi xgft1_hi
233-
234-
%define x0 xmm0
235-
%define xtmpa xmm1
236-
%define xp1 xmm2
237-
%define xp2 xmm3
238-
%endif
139+
%define xmask0f xmm8
140+
%define xgft1_lo xmm7
141+
%define xgft1_hi xmm6
142+
%define xgft2_lo xmm5
143+
%define xgft2_hi xmm4
144+
145+
%define x0 xmm0
146+
%define xtmpa xmm1
147+
%define xp1 xmm2
148+
%define xp2 xmm3
239149

240150
align 16
241151
mk_global gf_2vect_dot_prod_avx, function
@@ -267,12 +177,10 @@ func(gf_2vect_dot_prod_avx)
267177

268178
vmovdqu xgft1_lo, [tmp] ;Load array Ax{00}, Ax{01}, ..., Ax{0f}
269179
vmovdqu xgft1_hi, [tmp+16] ; " Ax{00}, Ax{10}, ..., Ax{f0}
270-
%ifidn PS,8 ; 64-bit code
271180
vmovdqu xgft2_lo, [tmp+vec*(32/PS)] ;Load array Bx{00}, Bx{01}, ..., Bx{0f}
272181
vmovdqu xgft2_hi, [tmp+vec*(32/PS)+16] ; " Bx{00}, Bx{10}, ..., Bx{f0}
273182
add tmp, 32
274183
add vec_i, PS
275-
%endif
276184
XLDR x0, [ptr+pos] ;Get next source vector
277185

278186
vpand xtmpa, x0, xmask0f ;Mask low src nibble in bits 4-0
@@ -284,12 +192,6 @@ func(gf_2vect_dot_prod_avx)
284192
vpxor xgft1_hi, xgft1_lo ;GF add high and low partials
285193
vpxor xp1, xgft1_hi ;xp1 += partial
286194

287-
%ifidn PS,4 ; 32-bit code
288-
vmovdqu xgft2_lo, [tmp+vec*(32/PS)] ;Load array Bx{00}, Bx{01}, ..., Bx{0f}
289-
vmovdqu xgft2_hi, [tmp+vec*(32/PS)+16] ; " Bx{00}, Bx{10}, ..., Bx{f0}
290-
add tmp, 32
291-
add vec_i, PS
292-
%endif
293195
vpshufb xgft2_hi, x0 ;Lookup mul table of high nibble
294196
vpshufb xgft2_lo, xtmpa ;Lookup mul table of low nibble
295197
vpxor xgft2_hi, xgft2_lo ;GF add high and low partials

0 commit comments

Comments
 (0)