Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 7 Jul 2013 02:39:03 +0200
From: Lukas Odzioba <lukas.odzioba@...il.com>
To: john-dev@...ts.openwall.com
Subject: Re: GCN isa - samples generated by AMD Catalyst

2013/7/5 Dániel Bali <balijanosdaniel@...il.com>:
> It turned out to be over 2MB, possibly due to the huge define in the code.
> Instead of attaching a large file like that, here is the link, in case
> anybody is interested:

Thanks! How much it would take to generate .isa files for all kernels?

Below is simple script to extract instructions of given type from .isa files:

#!/bin/bash
#Extracts given isa format instructions from .isa files based on
isa_instr.c definitions.
if [ $# -ne 2 ]
then
  echo "Usage: `basename $0` {instruction type} {.isa file}"
  exit $E_BADARGS
fi
type="$1}"
instructions=`cat isa_instr.c  | grep $type | cut -f2 -d'"' | cut -f1
-d'/' | tr '\n' '|'  | tr '[A-Z]' '[a-z]'   | sed 's/.$//'`
egrep "$instructions" "$2"
#echo $w

$ bash isa_extractor.sh SOP2 keccak256.isa
  s_mul_i32     s0, s12, s0                                 //
0000001C: 9300000C
  s_add_i32     s0, s0, s1                                  //
00000020: 81000100
  s_andn2_b64   exec, s[6:7], s[0:1]                        //
0000009C: 8AFE0006
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
0000011C: 8AFE201E
  s_and_b64     exec, s[24:25], s[14:15]                    //
0000012C: 87FE0E18
  s_andn2_b64   s[10:11], s[10:11], exec                    //
00000130: 8A8A7E0A
  s_andn2_b64   exec, s[6:7], exec                          //
00000154: 8AFE7E06
  s_andn2_b64   exec, s[6:7], s[0:1]                        //
00000234: 8AFE0006
  s_add_u32     s0, s0, 0x0000a38c                          //
00000240: 8000FF00 0000A38C
  s_addc_u32    s1, s1, 0                                   //
00000248: 82018001
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
000002B8: 8AFE201E
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
000002EC: 8AFE201E
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
00000320: 8AFE201E
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
00000370: 8AFE201E
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
000003A0: 8AFE201E
  s_and_b64     exec, s[20:21], s[14:15]                    //
000003B0: 87FE0E14
  s_add_u32     s14, s14, 0x0000a1c4                        //
000003BC: 800EFF0E 0000A1C4
  s_addc_u32    s15, s15, 0                                 //
000003C4: 820F800F
  s_andn2_b64   exec, s[20:21], exec                        //
0000A580: 8AFE7E14
  s_and_b64     exec, s[20:21], s[14:15]                    //
0000A5A0: 87FE0E14
  s_andn2_b64   s[10:11], s[10:11], exec                    //
0000A5A4: 8A8A7E0A
  s_sub_u32     s14, s14, 0x0000a354                        //
0000A5B8: 808EFF0E 0000A354
  s_subb_u32    s15, s15, 0                                 //
0000A5C0: 828F800F
  s_andn2_b64   exec, s[6:7], exec                          //
0000A5CC: 8AFE7E06
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
0000A618: 8AFE201E
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
0000A64C: 8AFE201E
  s_and_b64     exec, s[6:7], s[0:1]                        //
0000A65C: 87FE0006
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
0000A6AC: 8AFE201E
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
0000A6DC: 8AFE201E
  s_andn2_b64   exec, s[6:7], exec                          //
0000A6E8: 8AFE7E06
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
0000A72C: 8AFE201E
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
0000A75C: 8AFE201E
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
0000A7A4: 8AFE201E
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
0000A7D8: 8AFE201E
  s_andn2_b64   exec, s[10:11], s[0:1]                      //
0000A7E8: 8AFE000A
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
0000A82C: 8AFE201E
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
0000A85C: 8AFE201E
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
0000A8A4: 8AFE201E
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
0000A8D8: 8AFE201E
  s_and_b64     exec, s[22:23], s[20:21]                    //
0000A8E8: 87FE1416
  s_andn2_b64   s[14:15], s[14:15], exec                    //
0000A8EC: 8A8E7E0E
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
0000A968: 8AFE201E
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
0000A998: 8AFE201E
  s_lshl_b32    s0, s4, 3                                   //
0000AB08: 8F008304
  s_lshl_b32    s1, s4, 2                                   //
0000AB1C: 8F018204
  s_add_u32     s10, s10, 0x0000a104                        //
00014C08: 800AFF0A 0000A104
  s_addc_u32    s11, s11, 0                                 //
00014C10: 820B800B
  s_lshl_b32    s9, s7, 3                                   //
0001ED0C: 8F098307
  s_and_b32     s9, s9, 56                                  //
0001ED10: 8709B809
  s_and_b32     s10, -8, s7                                 //
0001ED14: 870A07C8
  s_and_b32     s10, s5, 24                                 //
0001ED1C: 870A9805
  s_lshr_b32    s11, s6, 2                                  //
0001ED20: 900B8206
  s_mul_i32     s11, s11, s4                                //
0001ED24: 930B040B
  s_add_i32     s11, s6, 1                                  //
0001ED3C: 810B8106
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
0001ED68: 8AFE201E
  s_andn2_b64   exec, s[30:31], s[32:33]                    //
0001ED9C: 8AFE201E
  s_sub_u32     s6, s6, 0x0000a1f4                          //
0001EDE8: 8086FF06 0000A1F4
  s_subb_u32    s7, s7, 0                                   //
0001EDF0: 82878007

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ