|
28 | 28 | do { \
|
29 | 29 | asm volatile("\n" \
|
30 | 30 | "1:\t" PARISC_BUG_BREAK_ASM "\n" \
|
31 |
| - "\t.pushsection __bug_table,\"aw\"\n" \ |
| 31 | + "\t.pushsection __bug_table,\"a\"\n" \ |
| 32 | + "\t.align %4\n" \ |
32 | 33 | "2:\t" ASM_WORD_INSN "1b, %c0\n" \
|
33 |
| - "\t.short %c1, %c2\n" \ |
34 |
| - "\t.org 2b+%c3\n" \ |
| 34 | + "\t.short %1, %2\n" \ |
| 35 | + "\t.blockz %3-2*%4-2*2\n" \ |
35 | 36 | "\t.popsection" \
|
36 | 37 | : : "i" (__FILE__), "i" (__LINE__), \
|
37 |
| - "i" (0), "i" (sizeof(struct bug_entry)) ); \ |
| 38 | + "i" (0), "i" (sizeof(struct bug_entry)), \ |
| 39 | + "i" (sizeof(long)) ); \ |
38 | 40 | unreachable(); \
|
39 | 41 | } while(0)
|
40 | 42 |
|
|
51 | 53 | do { \
|
52 | 54 | asm volatile("\n" \
|
53 | 55 | "1:\t" PARISC_BUG_BREAK_ASM "\n" \
|
54 |
| - "\t.pushsection __bug_table,\"aw\"\n" \ |
| 56 | + "\t.pushsection __bug_table,\"a\"\n" \ |
| 57 | + "\t.align %4\n" \ |
55 | 58 | "2:\t" ASM_WORD_INSN "1b, %c0\n" \
|
56 |
| - "\t.short %c1, %c2\n" \ |
57 |
| - "\t.org 2b+%c3\n" \ |
| 59 | + "\t.short %1, %2\n" \ |
| 60 | + "\t.blockz %3-2*%4-2*2\n" \ |
58 | 61 | "\t.popsection" \
|
59 | 62 | : : "i" (__FILE__), "i" (__LINE__), \
|
60 | 63 | "i" (BUGFLAG_WARNING|(flags)), \
|
61 |
| - "i" (sizeof(struct bug_entry)) ); \ |
| 64 | + "i" (sizeof(struct bug_entry)), \ |
| 65 | + "i" (sizeof(long)) ); \ |
62 | 66 | } while(0)
|
63 | 67 | #else
|
64 | 68 | #define __WARN_FLAGS(flags) \
|
65 | 69 | do { \
|
66 | 70 | asm volatile("\n" \
|
67 | 71 | "1:\t" PARISC_BUG_BREAK_ASM "\n" \
|
68 |
| - "\t.pushsection __bug_table,\"aw\"\n" \ |
| 72 | + "\t.pushsection __bug_table,\"a\"\n" \ |
| 73 | + "\t.align %2\n" \ |
69 | 74 | "2:\t" ASM_WORD_INSN "1b\n" \
|
70 |
| - "\t.short %c0\n" \ |
71 |
| - "\t.org 2b+%c1\n" \ |
| 75 | + "\t.short %0\n" \ |
| 76 | + "\t.blockz %1-%2-2\n" \ |
72 | 77 | "\t.popsection" \
|
73 | 78 | : : "i" (BUGFLAG_WARNING|(flags)), \
|
74 |
| - "i" (sizeof(struct bug_entry)) ); \ |
| 79 | + "i" (sizeof(struct bug_entry)), \ |
| 80 | + "i" (sizeof(long)) ); \ |
75 | 81 | } while(0)
|
76 | 82 | #endif
|
77 | 83 |
|
|
0 commit comments