|
23 | 23 | # RELAX-NEXT: 0x14 R_LARCH_RELAX - 0x0
|
24 | 24 | # RELAX-NEXT: }
|
25 | 25 | # RELAX-NEXT: Section ({{.*}}) .rela.data {
|
26 |
| -# RELAX-NEXT: 0xF R_LARCH_ADD8 .L3 0x0 |
27 |
| -# RELAX-NEXT: 0xF R_LARCH_SUB8 .L2 0x0 |
28 |
| -# RELAX-NEXT: 0x10 R_LARCH_ADD16 .L3 0x0 |
29 |
| -# RELAX-NEXT: 0x10 R_LARCH_SUB16 .L2 0x0 |
30 |
| -# RELAX-NEXT: 0x12 R_LARCH_ADD32 .L3 0x0 |
31 |
| -# RELAX-NEXT: 0x12 R_LARCH_SUB32 .L2 0x0 |
32 |
| -# RELAX-NEXT: 0x16 R_LARCH_ADD64 .L3 0x0 |
33 |
| -# RELAX-NEXT: 0x16 R_LARCH_SUB64 .L2 0x0 |
34 | 26 | # RELAX-NEXT: 0x1E R_LARCH_ADD8 .L4 0x0
|
35 | 27 | # RELAX-NEXT: 0x1E R_LARCH_SUB8 .L3 0x0
|
36 | 28 | # RELAX-NEXT: 0x1F R_LARCH_ADD16 .L4 0x0
|
|
43 | 35 | # RELAX-NEXT: ]
|
44 | 36 |
|
45 | 37 | # RELAX: Hex dump of section '.data':
|
46 |
| -# RELAX-NEXT: 0x00000000 04040004 00000004 00000000 00000000 |
47 |
| -# RELAX-NEXT: 0x00000010 00000000 00000000 00000000 00000000 |
| 38 | +# RELAX-NEXT: 0x00000000 04040004 00000004 00000000 0000000c |
| 39 | +# RELAX-NEXT: 0x00000010 0c000c00 00000c00 00000000 00000000 |
48 | 40 | # RELAX-NEXT: 0x00000020 00000000 00000000 00000000 00
|
49 | 41 |
|
50 | 42 | .text
|
|
63 | 55 | .short .L2 - .L1
|
64 | 56 | .word .L2 - .L1
|
65 | 57 | .dword .L2 - .L1
|
66 |
| -## With relaxation, emit relocs because of the .align making the diff variable. |
67 |
| -## TODO Handle alignment directive. Why they emit relocs now? They returns |
68 |
| -## without folding symbols offset in AttemptToFoldSymbolOffsetDifference(). |
| 58 | +## TODO Handle alignment directive. |
69 | 59 | .byte .L3 - .L2
|
70 | 60 | .short .L3 - .L2
|
71 | 61 | .word .L3 - .L2
|
72 | 62 | .dword .L3 - .L2
|
| 63 | +## With relaxation, emit relocs because the la.pcrel makes the diff variable. |
73 | 64 | .byte .L4 - .L3
|
74 | 65 | .short .L4 - .L3
|
75 | 66 | .word .L4 - .L3
|
|
0 commit comments