|
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