Subject: Re: video_lkm
To: None <paul@pgoyette.bdt.com>
From: Taras Ivanenko <ivanenko@ctpa03.mit.edu>
List: port-mac68k
Date: 02/17/1997 15:08:51
Paul,
  Here is the code from macrom.c:

        asm("
                movl    %2, a1
                movw    %3, d1
                movl    %4, d0
                movl    %5, a0
                jbsr    a1@
                movl    a0, %0
                movl    d0, %1"
                : "=g" (a0bucket), "=g" (d0bucket)
                : "g" (trapaddr), "g" (trapword),
                        "m" (frame->f_regs[0]), "m" (frame->f_regs[8])
                : "d0", "d1", "a0", "a1", "a6"
        );

As you may notice, a1 is used to keep the address of a trap
handler. Change it to a2 and blockmove() will work fine. In fact, the
cleanest way to call function is to put the address of a function to
stack, restore all registers and then do return.

	Taras Ivanenko.