Re: [cryptodev:master 43/44] arch/arm/crypto/aes-cipher-core.S:21: Error: selected processor does not support `tt .req ip' in ARM mode

2017-01-12 Thread Ard Biesheuvel
Hi Arnd,

On 12 January 2017 at 19:04, kbuild test robot  wrote:
> tree:   
> https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git 
> master
> head:   1abee99eafab67fb1c98f9ecfc43cd5735384a86
> commit: 81edb42629758bacdf813dd5e4542ae26e3ad73a [43/44] crypto: arm/aes - 
> replace scalar AES cipher
> config: arm-multi_v7_defconfig (attached as .config)
> compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705
> reproduce:
> wget 
> https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross
>  -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> git checkout 81edb42629758bacdf813dd5e4542ae26e3ad73a
> # save the attached .config to linux build tree
> make.cross ARCH=arm
>
> All errors (new ones prefixed by >>):
>
>arch/arm/crypto/aes-cipher-core.S: Assembler messages:
>>> arch/arm/crypto/aes-cipher-core.S:21: Error: selected processor does not 
>>> support `tt .req ip' in ARM mode

Did you ever see this error? This is very odd: .req simply declares an
alias for a register name, and this works fine locally

>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- 
>>> `movw tt,#:lower16:crypto_ft_tab'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- 
>>> `movt tt,#:upper16:crypto_ft_tab'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>>> r8,[tt,r8,lsl#2]'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>>> t0,[tt,t0,lsl#2]'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>>> r9,[tt,r9,lsl#2]'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>>> t1,[tt,t1,lsl#2]'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>>> t2,[tt,t2,lsl#2]'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>>> r10,[tt,r10,lsl#2]'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>>> t0,[tt,t0,lsl#2]'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>>> r11,[tt,r11,lsl#2]'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>>> r10,[tt,r10,lsl#2]'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>>> t0,[tt,t0,lsl#2]'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>>> r11,[tt,r11,lsl#2]'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>>> t1,[tt,t1,lsl#2]'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>>> t2,[tt,t2,lsl#2]'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>>> r5,[tt,r5,lsl#2]'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>>> t0,[tt,t0,lsl#2]'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>>> r6,[tt,r6,lsl#2]'
>>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>>> r4,[tt,r4,lsl#2]'
>
> vim +21 arch/arm/crypto/aes-cipher-core.S
>
> 15  .align  5
> 16
> 17  rk  .reqr0
> 18  rounds  .reqr1
> 19  in  .reqr2
> 20  out .reqr3
>   > 21  tt  .reqip
> 22
> 23  t0  .reqlr
> 24  t1  .reqr2
> 25  t2  .reqr3
> 26
> 27  .macro  __select, out, in, idx
> 28  .if __LINUX_ARM_ARCH__ < 7
> 29  and \out, \in, #0xff << (8 * \idx)
> 30  .else
> 31  ubfx\out, \in, #(8 * \idx), #8
> 32  .endif
> 33  .endm
> 34
> 35  .macro  __load, out, in, idx
> 36  .if __LINUX_ARM_ARCH__ < 7 && \idx > 0
> 37  ldr \out, [tt, \in, lsr #(8 * \idx) - 2]
> 38  .else
> 39  ldr \out, [tt, \in, lsl #2]
> 40  .endif
> 41  .endm
> 42
> 43  .macro  __hround, out0, out1, in0, in1, in2, in3, t3, 
> t4, enc
> 44  __select\out0, \in0, 0
> 45  __selectt0, \in1, 1
> 46  __load  \out0, \out0, 0
> 47  __load  t0, t0, 1
> 48
> 49  .if \enc
> 50  __select\out1, \in1, 0
> 51  __selectt1, \in2, 1
> 52  .else
> 53  __select\out1, \in3, 0
> 54  __selectt1, \in0, 1
> 55  .endif
> 56  __load  \out1, \out1, 0
> 57  __selectt2, \in2, 2
> 58  __load  t1, t1, 1
> 59  __load  t2, 

[cryptodev:master 43/44] arch/arm/crypto/aes-cipher-core.S:21: Error: selected processor does not support `tt .req ip' in ARM mode

2017-01-12 Thread kbuild test robot
tree:   
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
head:   1abee99eafab67fb1c98f9ecfc43cd5735384a86
commit: 81edb42629758bacdf813dd5e4542ae26e3ad73a [43/44] crypto: arm/aes - 
replace scalar AES cipher
config: arm-multi_v7_defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
wget 
https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross
 -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 81edb42629758bacdf813dd5e4542ae26e3ad73a
# save the attached .config to linux build tree
make.cross ARCH=arm 

All errors (new ones prefixed by >>):

   arch/arm/crypto/aes-cipher-core.S: Assembler messages:
>> arch/arm/crypto/aes-cipher-core.S:21: Error: selected processor does not 
>> support `tt .req ip' in ARM mode
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `movw 
>> tt,#:lower16:crypto_ft_tab'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `movt 
>> tt,#:upper16:crypto_ft_tab'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>> r8,[tt,r8,lsl#2]'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>> t0,[tt,t0,lsl#2]'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>> r9,[tt,r9,lsl#2]'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>> t1,[tt,t1,lsl#2]'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>> t2,[tt,t2,lsl#2]'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>> r10,[tt,r10,lsl#2]'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>> t0,[tt,t0,lsl#2]'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>> r11,[tt,r11,lsl#2]'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>> r10,[tt,r10,lsl#2]'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>> t0,[tt,t0,lsl#2]'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>> r11,[tt,r11,lsl#2]'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>> t1,[tt,t1,lsl#2]'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>> t2,[tt,t2,lsl#2]'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>> r5,[tt,r5,lsl#2]'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>> t0,[tt,t0,lsl#2]'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>> r6,[tt,r6,lsl#2]'
>> arch/arm/crypto/aes-cipher-core.S:174: Error: ARM register expected -- `ldr 
>> r4,[tt,r4,lsl#2]'

vim +21 arch/arm/crypto/aes-cipher-core.S

15  .align  5
16  
17  rk  .reqr0
18  rounds  .reqr1
19  in  .reqr2
20  out .reqr3
  > 21  tt  .reqip
22  
23  t0  .reqlr
24  t1  .reqr2
25  t2  .reqr3
26  
27  .macro  __select, out, in, idx
28  .if __LINUX_ARM_ARCH__ < 7
29  and \out, \in, #0xff << (8 * \idx)
30  .else
31  ubfx\out, \in, #(8 * \idx), #8
32  .endif
33  .endm
34  
35  .macro  __load, out, in, idx
36  .if __LINUX_ARM_ARCH__ < 7 && \idx > 0
37  ldr \out, [tt, \in, lsr #(8 * \idx) - 2]
38  .else
39  ldr \out, [tt, \in, lsl #2]
40  .endif
41  .endm
42  
43  .macro  __hround, out0, out1, in0, in1, in2, in3, t3, 
t4, enc
44  __select\out0, \in0, 0
45  __selectt0, \in1, 1
46  __load  \out0, \out0, 0
47  __load  t0, t0, 1
48  
49  .if \enc
50  __select\out1, \in1, 0
51  __selectt1, \in2, 1
52  .else
53  __select\out1, \in3, 0
54  __selectt1, \in0, 1
55  .endif
56  __load  \out1, \out1, 0
57  __selectt2, \in2, 2
58  __load  t1, t1, 1
59  __load  t2, t2, 2
60  
61  eor \out0, \out0, t0, ror #24
62  
63  __selectt0, \in3, 3
64  .if \enc
65  __select\t3, \in3, 2
66  __select\t4, \in0, 3
67  .else
68  __select\t3, \in1, 2
69  __select\t4, \in2, 3
70