From 26ca397042e9d1216ee4952a54faddaf8e9daf97 Mon Sep 17 00:00:00 2001 From: Max Filippov Date: Thu, 9 Aug 2012 05:25:35 +0400 Subject: [PATCH] --- yaml --- r: 347240 b: refs/heads/master c: c0226e34a4293dee0e7c5787e1ebfc5ee8b44b7c h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/xtensa/kernel/vectors.S | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 79a42264e128..2589258f56f2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6550162200b40d1e725167f8a617255c42b57552 +refs/heads/master: c0226e34a4293dee0e7c5787e1ebfc5ee8b44b7c diff --git a/trunk/arch/xtensa/kernel/vectors.S b/trunk/arch/xtensa/kernel/vectors.S index 4462c1e595c2..3a57c15f7942 100644 --- a/trunk/arch/xtensa/kernel/vectors.S +++ b/trunk/arch/xtensa/kernel/vectors.S @@ -225,7 +225,13 @@ ENTRY(_DoubleExceptionVector) /* Window overflow/underflow exception. Get stack pointer. */ mov a3, a2 - movi a2, exc_table + /* This explicit literal and the following references to it are made + * in order to fit DoubleExceptionVector.literals into the available + * 16-byte gap before DoubleExceptionVector.text in the absence of + * link time relaxation. See kernel/vmlinux.lds.S + */ + .literal .Lexc_table, exc_table + l32r a2, .Lexc_table l32i a2, a2, EXC_TABLE_KSTK /* Check for overflow/underflow exception, jump if overflow. */ @@ -255,7 +261,7 @@ ENTRY(_DoubleExceptionVector) s32i a0, a2, PT_AREG0 wsr a3, excsave1 # save a3 - movi a3, exc_table + l32r a3, .Lexc_table rsr a0, exccause s32i a0, a2, PT_DEPC # mark it as a regular exception @@ -267,7 +273,7 @@ ENTRY(_DoubleExceptionVector) /* a0: depc, a1: a1, a2: a2, a3: trashed, depc: a0, excsave1: a3 */ - movi a3, exc_table + l32r a3, .Lexc_table s32i a2, a3, EXC_TABLE_DOUBLE_SAVE # temporary variable /* Enter critical section. */ @@ -296,7 +302,7 @@ ENTRY(_DoubleExceptionVector) /* a0: avail, a1: a1, a2: kstk, a3: avail, depc: a2, excsave: a3 */ - movi a3, exc_table + l32r a3, .Lexc_table rsr a0, exccause addx4 a0, a0, a3 l32i a0, a0, EXC_TABLE_FAST_USER