1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# DP: Fix PR target/61336, taken from the trunk.
2014-06-02 Richard Henderson <rth@redhat.com>
PR target/61336
* config/alpha/alpha.c (print_operand_address): Allow symbolic
addresses inside asms. Use output_operand_lossage instead of
gcc_unreachable.
--- a/src/gcc/config/alpha/alpha.c
+++ b/src/gcc/config/alpha/alpha.c
@@ -5450,12 +5450,13 @@
offset = INTVAL (addr);
break;
-#if TARGET_ABI_OPEN_VMS
case SYMBOL_REF:
+ gcc_assert(TARGET_ABI_OPEN_VMS || this_is_asm_operands);
fprintf (file, "%s", XSTR (addr, 0));
return;
case CONST:
+ gcc_assert(TARGET_ABI_OPEN_VMS || this_is_asm_operands);
gcc_assert (GET_CODE (XEXP (addr, 0)) == PLUS
&& GET_CODE (XEXP (XEXP (addr, 0), 0)) == SYMBOL_REF);
fprintf (file, "%s+" HOST_WIDE_INT_PRINT_DEC,
@@ -5462,10 +5463,10 @@
XSTR (XEXP (XEXP (addr, 0), 0), 0),
INTVAL (XEXP (XEXP (addr, 0), 1)));
return;
-
-#endif
+
default:
- gcc_unreachable ();
+ output_operand_lossage ("invalid operand address");
+ return;
}
fprintf (file, HOST_WIDE_INT_PRINT_DEC "($%d)", offset, basereg);
|