Hi, I have a few armv7 assembly tests. I'm trying to compile these using the linaro aarch64 toolchain and I'm getting errors.
Is there any specific flag that I have to pass to enable backward compatibility to allow v7 assembly to be compiled for a v8 model?
reset.s: Assembler messages: reset.s:32: Error: operand 1 should be an integer register -- `mov r0,#0' reset.s:33: Error: unknown mnemonic `mcr' -- `mcr p15,0,R0,C13,c0,1' reset.s:36: Error: unknown mnemonic `mrc' -- `mrc p15,0,r0,c1,c0,0' reset.s:40: Error: operand 1 should be a SIMD vector register -- `orr r0,r0,#0x00001000' ....
Relevant assembly code: .... _reset:
// init Context ID Register MOV r0, #0 MCR p15, 0, R0, C13, c0, 1
// Enable Instruction cache mrc p15, 0, r0, c1, c0, 0 /* set bits: 12 = I i-cache */ orr r0, r0, #0x00001000 mcr p15, 0, r0, c1, c0, 0 .....
This is my assembler command: aarch64-linux-gnu-as -march=armv8-a+fp --keep-locals -o "reset.o" "reset.s"
Thanks, Kalai
On 30 January 2013 00:57, Kalai Narayanan-SSI kalai.rajah@ssi.samsung.com wrote:
Hi, I have a few armv7 assembly tests. I'm trying to compile these using the linaro aarch64 toolchain and I'm getting errors.
Is there any specific flag that I have to pass to enable backward compatibility to allow v7 assembly to be compiled for a v8 model?
Use a normal arm toolchain for 32-bit code. The aarch64 toolchain is for 64-bit only.
Thanks. Is this going to be like this / is there any future plan to use a single toolchain that can generate 32 / 64 bit code depending upon flags passed on commandline ?
This might not be related to the toolchain - but wanted to find out if there is any script that would convert assembly files written for aarch32 into aarch64.
-Kalai
-----Original Message----- From: Mans Rullgard [mailto:mans.rullgard@linaro.org] Sent: Tuesday, January 29, 2013 5:18 PM To: Kalai Narayanan-SSI Cc: linaro-toolchain@lists.linaro.org Subject: Re: Newbie question
On 30 January 2013 00:57, Kalai Narayanan-SSI kalai.rajah@ssi.samsung.com wrote:
Hi, I have a few armv7 assembly tests. I'm trying to compile these using the linaro aarch64 toolchain and I'm getting errors.
Is there any specific flag that I have to pass to enable backward compatibility to allow v7 assembly to be compiled for a v8 model?
Use a normal arm toolchain for 32-bit code. The aarch64 toolchain is for 64-bit only.
-- Mans Rullgard / mru
+++ Kalai Narayanan-SSI [2013-01-30 01:21 +0000]:
Thanks. Is this going to be like this / is there any future plan to use a single toolchain that can generate 32 / 64 bit code depending upon flags passed on commandline ?
I don't believe there is. Install one toolchain for each architecture you want to target.
This might not be related to the toolchain - but wanted to find out if there is any script that would convert assembly files written for aarch32 into aarch64.
It's a very different instruction set, so I doubt it. Arbitrary convesion between instruction sets is possible but tricky. Things like qemu effectively do this (no qemu support for 64-bit arm available yet), but probably not in a way useful to you.
Wookey
linaro-toolchain@lists.linaro.org