relocation-386.s revision ce2d3c57758619e99a99104e1168a9558658fab0
1f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o - | elf-dump | FileCheck  %s
229129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola
329129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// Test that we produce the correct relocation types and that the relocation
429129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// to .Lfoo uses the symbol and not the section.
529129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola
629129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// Section 3 is bss
729129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK:      # Section 3
829129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK-NEXT: (('sh_name', 13) # '.bss'
929129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola
1029129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK:      # Symbol 1
1129129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK-NEXT: (('st_name', 5) # '.Lfoo'
1229129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola
1329129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// Symbol 6 is section 3
1429129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK:      # Symbol 6
1529129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK-NEXT: (('st_name', 0) # ''
1629129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK-NEXT:  ('st_value', 0)
1729129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK-NEXT:  ('st_size', 0)
1829129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola// CHECK-NEXT:  ('st_bind', 0)
19f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT:  ('st_type', 3)
20f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT:  ('st_other', 0)
21f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT:  ('st_shndx', 3)
22f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck
23f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK:      # Relocation 0
24f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: (('r_offset', 2)
25f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT:  ('r_sym', 1)
26f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT:  ('r_type', 9)
27f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: ),
28f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT:  # Relocation 1
29f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: (('r_offset',
30f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT:  ('r_sym',
31f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT:  ('r_type', 4)
32f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: ),
33f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT:  # Relocation 2
34f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: (('r_offset',
357486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// CHECK-NEXT:  ('r_sym',
367486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// CHECK-NEXT:  ('r_type', 10)
377486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// CHECK-NEXT: ),
387486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola
397486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// Relocation 3 (bar3@GOTOFF) is done symbol 6 (bss)
407486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// CHECK-NEXT:  # Relocation 3
417486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// CHECK-NEXT: (('r_offset',
427486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// CHECK-NEXT:  ('r_sym', 6
437486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// CHECK-NEXT:  ('r_type',
447486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// CHECK-NEXT: ),
457486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola
467486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola        .text
477486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindolabar:
487486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola	leal	.Lfoo@GOTOFF(%ebx), %eax
497486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola
507486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola        .global bar2
51f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieckbar2:
52f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck	calll	bar2@PLT
53f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck	addl	$_GLOBAL_OFFSET_TABLE_, %ebx
547c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola	movb	bar3@GOTOFF(%ebx), %al
557486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola
5629129728f1d4febe44792d1481077cc47fe83a08Rafael Espindola	.type	bar3,@object
57f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck	.local	bar3
58f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck	.comm	bar3,1,1
59f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck
60f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck        .section	.rodata.str1.16,"aMS",@progbits,1
61f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck.Lfoo:
62f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck	.asciz	 "bool llvm::llvm_start_multithreaded()"
63f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck