Enhance GCM throughput using larger precalculated tables. Also refactored the code for shorter tables and moved the check for available accelerators to the context initialization code.

Signed-off-by: Matthias Schulz <mschulz@hilscher.com>
diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh
index 8d3b46e..a21566c 100755
--- a/tests/scripts/all.sh
+++ b/tests/scripts/all.sh
@@ -4941,6 +4941,58 @@
     programs/test/selftest
 }
 
+component_test_gcm_largetable () {
+    msg "build: default config + GCM_LARGETABLE - AESNI_C - AESCE_C"
+    scripts/config.py set MBEDTLS_GCM_LARGETABLE
+    scripts/config.py unset MBEDTLS_PADLOCK_C
+    scripts/config.py unset MBEDTLS_AESNI_C
+    scripts/config.py unset MBEDTLS_AESCE_C
+
+    make CFLAGS='-O2 -Werror -Wall -Wextra'
+
+    msg "test: default config + GCM_LARGETABLE - AESNI_C - AESCE_C"
+    make test
+}
+
+component_test_gcm_largetable_gcc () {
+    msg "build: default config + GCM_LARGETABLE - AESNI_C - AESCE_C"
+    scripts/config.py set MBEDTLS_GCM_LARGETABLE
+    scripts/config.py unset MBEDTLS_PADLOCK_C
+    scripts/config.py unset MBEDTLS_AESNI_C
+    scripts/config.py unset MBEDTLS_AESCE_C
+
+    make CC=gcc CFLAGS='-O2 -Werror -Wall -Wextra'
+
+    msg "test: default config - GCM_LARGETABLE - AESNI_C - AESCE_C"
+    make test
+}
+
+component_test_gcm_smalltable () {
+    msg "build: default config - GCM_LARGETABLE - AESNI_C - AESCE_C"
+    scripts/config.py unset MBEDTLS_GCM_LARGETABLE
+    scripts/config.py unset MBEDTLS_PADLOCK_C
+    scripts/config.py unset MBEDTLS_AESNI_C
+    scripts/config.py unset MBEDTLS_AESCE_C
+
+    make CFLAGS='-O2 -Werror -Wall -Wextra'
+
+    msg "test: default config - GCM_LARGETABLE - AESNI_C - AESCE_C"
+    make test
+}
+
+component_test_gcm_smalltable_gcc () {
+    msg "build: default config - GCM_LARGETABLE - AESNI_C - AESCE_C"
+    scripts/config.py unset MBEDTLS_GCM_LARGETABLE
+    scripts/config.py unset MBEDTLS_PADLOCK_C
+    scripts/config.py unset MBEDTLS_AESNI_C
+    scripts/config.py unset MBEDTLS_AESCE_C
+
+    make CC=gcc CFLAGS='-O2 -Werror -Wall -Wextra'
+
+    msg "test: default config - GCM_LARGETABLE - AESNI_C - AESCE_C"
+    make test
+}
+
 component_test_aes_fewer_tables () {
     msg "build: default config with AES_FEWER_TABLES enabled"
     scripts/config.py set MBEDTLS_AES_FEWER_TABLES