From cb791aaf48368a52a5cf7331f8d7c86e68cad6b1 Mon Sep 17 00:00:00 2001 From: jsteube Date: Sun, 25 Jun 2017 00:45:22 +0200 Subject: [PATCH] Add some code generator helper scripts --- .../GEN_AMD_switch_buffer_by_offset_le_S.pl | 27 +++++++++++++++++++ .../GEN_NV_switch_buffer_by_offset_le_S.pl | 27 +++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 tools/code_generators/GEN_AMD_switch_buffer_by_offset_le_S.pl create mode 100644 tools/code_generators/GEN_NV_switch_buffer_by_offset_le_S.pl diff --git a/tools/code_generators/GEN_AMD_switch_buffer_by_offset_le_S.pl b/tools/code_generators/GEN_AMD_switch_buffer_by_offset_le_S.pl new file mode 100644 index 000000000..143342238 --- /dev/null +++ b/tools/code_generators/GEN_AMD_switch_buffer_by_offset_le_S.pl @@ -0,0 +1,27 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +for (my $i = 0, my $s = 0; $i < 64; $i++, $s++) +{ + printf (" case %2d:\n", $i); + + for (my $j = 64 - 1; $j >= 0; $j--) + { + if ((($j - $s - 1) >= 0) && (($j - $s - 0) >= 0)) + { + printf (" w[%2d] = amd_bytealign_S (w[%2d], w[%2d], offset_minus_4);\n", $j, $j - $s - 0, $j - $s - 1); + } + elsif (($j - $s - 0) >= 0) + { + printf (" w[%2d] = amd_bytealign_S (w[%2d], 0, offset_minus_4);\n", $j, $j - $s - 0); + } + else + { + printf (" w[%2d] = 0;\n", $j); + } + } + + printf (" break;\n"); +} diff --git a/tools/code_generators/GEN_NV_switch_buffer_by_offset_le_S.pl b/tools/code_generators/GEN_NV_switch_buffer_by_offset_le_S.pl new file mode 100644 index 000000000..c9228ce0a --- /dev/null +++ b/tools/code_generators/GEN_NV_switch_buffer_by_offset_le_S.pl @@ -0,0 +1,27 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +for (my $i = 0, my $s = 0; $i < 64; $i++, $s++) +{ + printf (" case %2d:\n", $i); + + for (my $j = 64 - 1; $j >= 0; $j--) + { + if ((($j - $s - 1) >= 0) && (($j - $s - 0) >= 0)) + { + printf (" w[%2d] = __byte_perm_S (w[%2d], w[%2d], selector);\n", $j, $j - $s - 1, $j - $s - 0); + } + elsif (($j - $s - 0) >= 0) + { + printf (" w[%2d] = __byte_perm_S ( 0, w[%2d], selector);\n", $j, $j - $s - 0); + } + else + { + printf (" w[%2d] = 0;\n", $j); + } + } + + printf (" break;\n"); +}