Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: sljit and arm arches



On 11/18/13 18:22, Alexander Nasonov wrote:
I'm trying to enable sljit on arm arches and I must admit that it's
harder compared to other arches.

There are nine arm arches according to the ports page on NetBSD site:

acorn26, acorn32, cats, evbarm, hpcarm, iyonix, netwinder, shark and
zaurus.

Sljit only supports v5, v7 and thumb2 instruction sets. I suspect that
many arches are older but I don't see any information about instruction
sets on ports pages.

My wild guess is that only tier I ports evbarm and hpcarm are new enough
to support sljit. Can someone confirm this please?

acorn26 is armv2
acorn32 can be armv3 or armv4 (strongarm)
cats, shark and netwinder are armv4 (strongarm)
iyonix is armv5
hpcarm appears to be armv4 (strongarm) and armv5.
zaurus is armv5 it seems

evbarm defaults to armv5, but there are arm v6 and v7 variants - see below.

The second issue is when I compile evbarm, none of _ARM_ARCH_7,
_ARM_ARCH_5 and _ARM_ARCH_T2 from cdefs.h are defined. Is it compiling
for some generic arm architecture?

yes.

There are build.sh aliases that set MACHINE_ARCH to a more specific value and they're mentioned here

http://mail-index.netbsd.org/tech-kern/2013/11/12/msg015933.html

And finally, when I use cpu_icache_sync_range() to flush icache in the
kernel, the build breaks in rump because rumpns_cpufuncs isn't defined.
I wonder if I can use something else like __clear_cache() for a limited
set of arm versions supported by sljit?

http://nxr.netbsd.org/source/search?q=ARM_SYNC_ICACHE&project=src


Thanks,
Alex


Nick



Home | Main Index | Thread Index | Old Index