traps.c (fab5db97e44f76461f76b24adfa8ccb14d4df498) traps.c (e9370ae15dc2f8ba1e1889ce26f13cda565b6ecb)
1/*
2 * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version
7 * 2 of the License, or (at your option) any later version.
8 *

--- 791 unchanged lines hidden (view full) ---

800 if (reason & REASON_PRIVILEGED)
801 _exception(SIGILL, regs, ILL_PRVOPC, regs->nip);
802 else
803 _exception(SIGILL, regs, ILL_ILLOPC, regs->nip);
804}
805
806void alignment_exception(struct pt_regs *regs)
807{
1/*
2 * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version
7 * 2 of the License, or (at your option) any later version.
8 *

--- 791 unchanged lines hidden (view full) ---

800 if (reason & REASON_PRIVILEGED)
801 _exception(SIGILL, regs, ILL_PRVOPC, regs->nip);
802 else
803 _exception(SIGILL, regs, ILL_ILLOPC, regs->nip);
804}
805
806void alignment_exception(struct pt_regs *regs)
807{
808 int fixed;
808 int fixed = 0;
809
809
810 fixed = fix_alignment(regs);
810 /* we don't implement logging of alignment exceptions */
811 if (!(current->thread.align_ctl & PR_UNALIGN_SIGBUS))
812 fixed = fix_alignment(regs);
811
812 if (fixed == 1) {
813 regs->nip += 4; /* skip over emulated instruction */
814 emulate_single_step(regs);
815 return;
816 }
817
818 /* Operand address was bad */

--- 252 unchanged lines hidden ---
813
814 if (fixed == 1) {
815 regs->nip += 4; /* skip over emulated instruction */
816 emulate_single_step(regs);
817 return;
818 }
819
820 /* Operand address was bad */

--- 252 unchanged lines hidden ---