ARC: entry: Add more common chores to EXCEPTION_PROLOGUE
[linux-2.6-microblaze.git] / arch / arc / include / asm / entry-compact.h
index 4e2ae82..a0e760e 100644 (file)
  *
  * After this it is safe to call the "C" handlers
  *-------------------------------------------------------------*/
-.macro EXCEPTION_PROLOGUE
+.macro EXCEPTION_PROLOGUE_KEEP_AE
 
        /* Need at least 1 reg to code the early exception prologue */
        PROLOG_FREEUP_REG r9, @ex_saved_reg1
        ; OUTPUT: r10 has ECR expected by EV_Trap
 .endm
 
+.macro EXCEPTION_PROLOGUE
+
+       EXCEPTION_PROLOGUE_KEEP_AE      ; return ECR in r10
+
+       lr  r0, [efa]
+       mov r1, sp
+
+       FAKE_RET_FROM_EXCPN             ; clobbers r9
+.endm
+
 /*--------------------------------------------------------------
  * Restore all registers used by system call or Exceptions
  * SP should always be pointing to the next free stack element