svn commit: r224187 - in head: sys/amd64/amd64 sys/arm/arm sys/arm/sa11x0 sys/i386/i386 sys/ia64/ia64 sys/kern sys/mips/mips sys/powerpc/aim sys/powerpc/booke sys/sparc64/sparc64 sys/sys usr.bin/vm...

Marcel Moolenaar marcel at xcllnt.net
Tue Jul 19 00:20:42 UTC 2011


On Jul 18, 2011, at 8:19 AM, Attilio Rao wrote:

> Author: attilio
> Date: Mon Jul 18 15:19:40 2011
> New Revision: 224187
> URL: http://svn.freebsd.org/changeset/base/224187
> 
> Log:
>  - Remove the eintrcnt/eintrnames usage and introduce the concept of
>    sintrcnt/sintrnames which are symbols containing the size of the 2
>    tables.
>  - For amd64/i386 remove the storage of intr* stuff from assembly files.
>    This area can be widely improved by applying the same to other
>    architectures and likely finding an unified approach among them and
>    move the whole code to be MI. More work in this area is expected to
>    happen fairly soon.
> 
>  No MFC is previewed for this patch.

You just broke ia64 and possibly other 64-bit architectures:

".word" declares a 16-bit integral on ia64 and the size symbols
are of type size_t (=64 bit). We'll be having misaligned loads
(= kernel panics) and/or reading garbage...

Use "data8" on ia64, as per the assembly language reference.

eris% cat x.s
        .data
foo:
        .word   0x11223344
foo1:
        .byte   0x99

eris% as x.s -o x.o
x.s: Assembler messages:
x.s:3: Warning: value 0x11223344 truncated to 0x3344
eris% nm x.o
0000000000000000 d foo
0000000000000002 d foo1

FYI,

-- 
Marcel Moolenaar
marcel at xcllnt.net




More information about the svn-src-head mailing list