Module Name:    src
Committed By:   uebayasi
Date:           Sat Jun 22 15:13:56 UTC 2013

Modified Files:
        src/sys/arch/amd64/amd64: locore.S
        src/sys/arch/i386/i386: locore.S

Log Message:
Use END() markers, etc.  Pure ELF .symtab (size) changes.


To generate a diff of this commit:
cvs rdiff -u -r1.70 -r1.71 src/sys/arch/amd64/amd64/locore.S
cvs rdiff -u -r1.103 -r1.104 src/sys/arch/i386/i386/locore.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/amd64/amd64/locore.S
diff -u src/sys/arch/amd64/amd64/locore.S:1.70 src/sys/arch/amd64/amd64/locore.S:1.71
--- src/sys/arch/amd64/amd64/locore.S:1.70	Sun Jul 15 15:17:56 2012
+++ src/sys/arch/amd64/amd64/locore.S	Sat Jun 22 15:13:56 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: locore.S,v 1.70 2012/07/15 15:17:56 dsl Exp $	*/
+/*	$NetBSD: locore.S,v 1.71 2013/06/22 15:13:56 uebayasi Exp $	*/
 
 /*
  * Copyright-o-rama!
@@ -187,6 +187,9 @@
 /* Get definitions for IOM_BEGIN, IOM_END, and IOM_SIZE */
 #include <dev/isa/isareg.h>
 
+#define	_RELOC(x)	((x) - KERNBASE)
+#define	RELOC(x)	_RELOC(_C_LABEL(x))
+
 #ifdef XEN
 
 /*
@@ -216,53 +219,92 @@
 
 #if NLAPIC > 0 
 	.align  NBPG
-	.globl _C_LABEL(local_apic), _C_LABEL(lapic_id), _C_LABEL(lapic_tpr)
-_C_LABEL(local_apic):
+	.globl _C_LABEL(local_apic)
+	.globl _C_LABEL(lapic_id)
+	.globl _C_LABEL(lapic_tpr)
+
+	.type	_C_LABEL(local_apic), @object
+LABEL(local_apic)
 	.space  LAPIC_ID
-_C_LABEL(lapic_id):
+END(local_apic)
+	.type	_C_LABEL(lapic_id), @object
+LABEL(lapic_id)
 	.long   0x00000000
 	.space  LAPIC_TPRI-(LAPIC_ID+4)
-_C_LABEL(lapic_tpr):
+END(lapic_id)
+	.type	_C_LABEL(lapic_tpr), @object
+LABEL(lapic_tpr)
 	.space  LAPIC_PPRI-LAPIC_TPRI
+END(lapic_tpr)
+	.type	_C_LABEL(lapic_ppr), @object
 _C_LABEL(lapic_ppr):
 	.space  LAPIC_ISR-LAPIC_PPRI 
+END(lapic_ppr)
+	.type	_C_LABEL(lapic_isr), @object
 _C_LABEL(lapic_isr):
 	.space  NBPG-LAPIC_ISR
+END(lapic_isr)
 #endif
 
-	.globl	_C_LABEL(cpu_id),_C_LABEL(cpu_vendorname), _C_LABEL(cpu_brand_id)
+	.globl	_C_LABEL(cpu_id)
+	.globl	_C_LABEL(cpu_vendorname)
+	.globl	_C_LABEL(cpu_brand_id)
 	.globl	_C_LABEL(cpuid_level)
-	.globl	_C_LABEL(esym),_C_LABEL(eblob),_C_LABEL(boothowto)
-	.globl	_C_LABEL(bootinfo),_C_LABEL(atdevbase)
+	.globl	_C_LABEL(esym)
+	.globl	_C_LABEL(eblob)
+	.globl	_C_LABEL(boothowto)
+	.globl	_C_LABEL(bootinfo)
+	.globl	_C_LABEL(atdevbase)
 	.globl	_C_LABEL(PDPpaddr)
-	.globl	_C_LABEL(biosbasemem),_C_LABEL(biosextmem)
-	.globl	_C_LABEL(gdtstore),_C_LABEL(cputype)
+	.globl	_C_LABEL(biosbasemem)
+	.globl	_C_LABEL(biosextmem)
+	.globl	_C_LABEL(gdtstore)
+	.globl	_C_LABEL(cputype)
 
-_C_LABEL(cputype):	.long	0	# are we 386, 386sx, or 486,
+	.type	_C_LABEL(cputype), @object
+LABEL(cputype)		.long	0	# are we 386, 386sx, or 486,
 					#   or Pentium, or..
-_C_LABEL(cpu_id):	.long	0	# saved from `cpuid' instruction
-_C_LABEL(cpuid_level):	.long	-1	# max. level accepted by 'cpuid'
+END(cputype)
+	.type	_C_LABEL(cpu_id), @object
+LABEL(cpu_id)		.long	0	# saved from `cpuid' instruction
+END(cpu_id)
+	.type	_C_LABEL(cpuid_level), @object
+LABEL(cpuid_level)	.long	-1	# max. level accepted by 'cpuid'
 					#   instruction
-_C_LABEL(cpu_vendorname):	.space	16	# vendor string returned by `cpuid'
+END(cpuid_level)
+	.type	_C_LABEL(cpu_vendorname), @object
+LABEL(cpu_vendorname)	.space	16	# vendor string returned by `cpuid'
 					#   instruction
-_C_LABEL(cpu_brand_id):	.long	0	# brand ID from 'cpuid' instruction
-_C_LABEL(esym):		.quad	0	# ptr to end of syms
-_C_LABEL(eblob):	.quad	0	# ptr to end of modules
-_C_LABEL(atdevbase):	.quad	0	# location of start of iomem in virtual
-_C_LABEL(PDPpaddr):	.quad	0	# paddr of PTD, for libkvm
+END(cpu_vendorname)
+	.type	_C_LABEL(cpu_brand_id), @object
+LABEL(cpu_brand_id)	.long	0	# brand ID from 'cpuid' instruction
+END(cpu_brand_id)
+	.type	_C_LABEL(esym), @object
+LABEL(esym)		.quad	0	# ptr to end of syms
+END(esym)
+	.type	_C_LABEL(eblob), @object
+LABEL(eblob)		.quad	0	# ptr to end of modules
+END(eblob)
+	.type	_C_LABEL(atdevbase), @object
+LABEL(atdevbase)	.quad	0	# location of start of iomem in virtual
+END(atdevbase)
+	.type	_C_LABEL(PDPpaddr), @object
+LABEL(PDPpaddr)		.quad	0	# paddr of PTD, for libkvm
+END(PDPpaddr)
+	.type	_C_LABEL(biosbasemem), @object
 #ifndef REALBASEMEM
-_C_LABEL(biosbasemem):	.long	0	# base memory reported by BIOS
+LABEL(biosbasemem)	.long	0	# base memory reported by BIOS
 #else
-_C_LABEL(biosbasemem):	.long	REALBASEMEM
+LABEL(biosbasemem)	.long	REALBASEMEM
 #endif
+END(biosbasemem)
+	.type	_C_LABEL(biosextmem), @object
 #ifndef REALEXTMEM
-_C_LABEL(biosextmem):	.long	0	# extended memory reported by BIOS
+LABEL(biosextmem)	.long	0	# extended memory reported by BIOS
 #else
-_C_LABEL(biosextmem):	.long	REALEXTMEM
+LABEL(biosextmem)	.long	REALEXTMEM
 #endif
-
-#define	_RELOC(x)	((x) - KERNBASE)
-#define	RELOC(x)	_RELOC(_C_LABEL(x))
+END(biosextmem)
 
 #ifndef XEN
 	.globl	gdt64_lo
@@ -271,30 +313,40 @@ _C_LABEL(biosextmem):	.long	REALEXTMEM
 #define GDT64_LIMIT gdt64_end-gdt64_start-1
 
 /* Temporary gdt64, with base address in low memory */
-gdt64_lo:
+	.type	_C_LABEL(gdt64_lo), @object
+LABEL(gdt64_lo)
 	.word	GDT64_LIMIT
 	.quad	_RELOC(gdt64_start)
+END(gdt64_lo)
 .align 64
 
 /* Temporary gdt64, with base address in high memory */
-gdt64_hi:
+	.type	_C_LABEL(gdt64_hi), @object
+LABEL(gdt64_hi)
 	.word	GDT64_LIMIT
 	.quad	gdt64_start
+END(gdt64_hi)
 .align 64
 
 #undef GDT64_LIMIT
 
-gdt64_start:
+	.type	_C_LABEL(gdt64_start), @object
+_C_LABEL(gdt64_start):
 	.quad 0x0000000000000000	/* always empty */
 	.quad 0x00af9a000000ffff	/* kernel CS */
 	.quad 0x00cf92000000ffff	/* kernel DS */
+END(gdt64_start)
 gdt64_end:
 
-farjmp64:
+	.type	_C_LABEL(farjmp64), @object
+_C_LABEL(farjmp64):
 	.long	_RELOC(longmode)
 	.word	GSEL(GCODE_SEL, SEL_KPL)
+END(farjmp64)
 	
 #endif	/* !XEN */
+
+	.size	tmpstk, tmpstk - .
 	.space 512
 tmpstk:
 
@@ -311,12 +363,10 @@ tmpstk:
 	.globl	_C_LABEL(kernel_text)
 	.set	_C_LABEL(kernel_text),KERNTEXTOFF
 
+ENTRY(start)
 #ifndef XEN
-.code32
-
-	.globl	start
-start:	movw	$0x1234,0x472			# warm boot
-
+	.code32
+	movw	$0x1234,0x472			# warm boot
 	/*
 	 * Load parameters from stack
 	 * (howto, [bootdev], bootinfo, esym, basemem, extmem).
@@ -717,8 +767,6 @@ longmode_hi:
 	leaq	(TABLESIZE+IOM_SIZE)(%rsi),%rdi
 
 #else	/* XEN */
-	.globl	start
-start:
 	/* First, reset the PSL. */
 	pushq	$2
 	popfq
@@ -814,6 +862,7 @@ start:
 	call	_C_LABEL(init_x86_64)
 
 	call 	_C_LABEL(main)
+END(start)
 
 #ifdef XEN
 /* space for the hypercall call page */
@@ -821,6 +870,7 @@ start:
 .org HYPERCALL_PAGE_OFFSET
 ENTRY(hypercall_page)
 .skip 0x1000
+END(hypercall_page)
 #endif /* XEN */
 
 /*
@@ -846,6 +896,7 @@ ENTRY(setjmp)
 	movq	%rdx,56(%rax)
 	xorl	%eax,%eax
 	ret
+END(setjmp)
 
 /*
  * int longjmp(label_t *)
@@ -865,6 +916,7 @@ ENTRY(longjmp)
 	movq	%rdx,(%rsp)
 	movl	$1,%eax
 	ret
+END(longjmp)
 
 ENTRY(dumpsys)
 	# mimic cpu_switchto() for postmortem debugging.
@@ -885,6 +937,7 @@ ENTRY(dumpsys)
 
 	addq	$(5*8), %rsp	# sizeof(switchframe) - sizeof(%rip)
 	ret
+END(dumpsys)
 
 /*
  * struct lwp *cpu_switchto(struct lwp *oldlwp, struct lwp *newlwp,
@@ -1045,6 +1098,7 @@ ENTRY(cpu_switchto)
 	je	2b
 	movq	%rax,TF_RIP(%rbx)
 	jmp	2b
+END(cpu_switchto)
 
 /*
  * void savectx(struct pcb *pcb);
@@ -1056,9 +1110,11 @@ ENTRY(savectx)
 	movq	%rsp,PCB_RSP(%rdi)
 	movq	%rbp,PCB_RBP(%rdi)
 	ret
+END(savectx)
 
 IDTVEC(syscall32)
 	sysret		/* go away please */
+IDTVEC_END(syscall32)
 
 /*
  * syscall()
@@ -1204,6 +1260,7 @@ do_syscall:
 	movq	%rsp,%rdi
 	call	_C_LABEL(trap)
 	jmp	.Lsyscall_checkast	/* re-check ASTs */
+IDTVEC_END(syscall)
 
 /*
  * void lwp_trampoline(void);
@@ -1220,6 +1277,7 @@ NENTRY(lwp_trampoline)
 	movq	%r13,%rdi
 	call	*%r12
 	jmp	.Lsyscall_checkast
+END(lwp_trampoline)
 
 /*
  * oosyscall()
@@ -1240,6 +1298,7 @@ IDTVEC(oosyscall)
 	popq	16(%rsp)
 	pushq	$7		# size of instruction for restart
 	jmp	osyscall1
+IDTVEC_END(oosyscall)
 
 /*
  * osyscall()
@@ -1258,6 +1317,7 @@ osyscall1:
 	INTRENTRY
 	STI(si)
 	jmp	do_syscall
+IDTVEC_END(osyscall)
 
 /*
  * bool sse2_idlezero_page(void *pg)
@@ -1294,6 +1354,7 @@ ENTRY(sse2_idlezero_page)
 	sfence
 	popq	%rbp
 	ret
+END(sse2_idlezero_page)
 
 /*
  * void pagezero(vaddr_t va)
@@ -1318,3 +1379,4 @@ ENTRY(pagezero)
 	jne	1b
 	sfence
 	ret
+END(pagezero)

Index: src/sys/arch/i386/i386/locore.S
diff -u src/sys/arch/i386/i386/locore.S:1.103 src/sys/arch/i386/i386/locore.S:1.104
--- src/sys/arch/i386/i386/locore.S:1.103	Fri Oct 26 14:46:44 2012
+++ src/sys/arch/i386/i386/locore.S	Sat Jun 22 15:13:55 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: locore.S,v 1.103 2012/10/26 14:46:44 chs Exp $	*/
+/*	$NetBSD: locore.S,v 1.104 2013/06/22 15:13:55 uebayasi Exp $	*/
 
 /*
  * Copyright-o-rama!
@@ -129,7 +129,7 @@
  */
 
 #include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.103 2012/10/26 14:46:44 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.104 2013/06/22 15:13:55 uebayasi Exp $");
 
 #include "opt_compat_oldboot.h"
 #include "opt_ddb.h"
@@ -163,6 +163,13 @@ __KERNEL_RCSID(0, "$NetBSD: locore.S,v 1
 /* Get definitions for IOM_BEGIN, IOM_END, and IOM_SIZE */
 #include <dev/isa/isareg.h>
 
+#ifndef XEN
+#define	_RELOC(x)	((x) - KERNBASE)
+#else
+#define	_RELOC(x)	((x))
+#endif /* XEN */
+#define	RELOC(x)	_RELOC(_C_LABEL(x))
+
 #ifdef XEN
 /*
  * Xen guest identifier and loader selection
@@ -194,7 +201,8 @@ __KERNEL_RCSID(0, "$NetBSD: locore.S,v 1
 	.globl	_C_LABEL(esym)
 	.globl	_C_LABEL(eblob)
 	.globl	_C_LABEL(atdevbase)
-	.globl	_C_LABEL(lwp0uarea),_C_LABEL(PDPpaddr)
+	.globl	_C_LABEL(lwp0uarea)
+	.globl	_C_LABEL(PDPpaddr)
 	.globl	_C_LABEL(gdt)
 	.globl	_C_LABEL(idt)
 	.globl	_C_LABEL(lapic_tpr)
@@ -206,52 +214,68 @@ __KERNEL_RCSID(0, "$NetBSD: locore.S,v 1
 	.align	12
 #endif
 	.globl _C_LABEL(local_apic), _C_LABEL(lapic_id)
-_C_LABEL(local_apic):
+	.type	_C_LABEL(local_apic), @object
+LABEL(local_apic)
 	.space	LAPIC_ID
-_C_LABEL(lapic_id):
+END(local_apic)
+	.type	_C_LABEL(lapic_id), @object
+LABEL(lapic_id)
 	.long	0x00000000
 	.space  LAPIC_TPRI-(LAPIC_ID+4)
-_C_LABEL(lapic_tpr):
+END(lapic_id)
+	.type	_C_LABEL(lapic_tpr), @object
+LABEL(lapic_tpr)
 	.space  LAPIC_PPRI-LAPIC_TPRI
+END(lapic_tpr)
+	.type	_C_LABEL(lapic_ppr), @object
 _C_LABEL(lapic_ppr):
 	.space	LAPIC_ISR-LAPIC_PPRI
+END(lapic_ppr)
+	.type	_C_LABEL(lapic_isr), @object
 _C_LABEL(lapic_isr):
 	.space	PAGE_SIZE-LAPIC_ISR
+END(lapic_isr)
 #else
-_C_LABEL(lapic_tpr):
+	.type	_C_LABEL(lapic_tpr), @object
+LABEL(lapic_tpr)
 	.long 0
+END(lapic_tpr)
 #endif
-
-_C_LABEL(cputype):	.long	0	# are we 80486, Pentium, or..
-_C_LABEL(cpuid_level):	.long	0
-_C_LABEL(atdevbase):	.long	0	# location of start of iomem in virtual
-_C_LABEL(lwp0uarea):	.long	0
-_C_LABEL(PDPpaddr):	.long	0	# paddr of PDP, for libkvm
+	.type	_C_LABEL(cputype), @object
+LABEL(cputype)		.long	0	# are we 80486, Pentium, or..
+END(cputype)
+	.type	_C_LABEL(cpuid_level), @object
+LABEL(cpuid_level)	.long	0
+END(cpuid_level)
+	.type	_C_LABEL(atdevbase), @object
+LABEL(atdevbase)	.long	0	# location of start of iomem in virtual
+END(atdevbase)
+	.type	_C_LABEL(lwp0uarea), @object
+LABEL(lwp0uarea)	.long	0
+END(lwp0uarea)
+	.type	_C_LABEL(PDPpaddr), @object
+LABEL(PDPpaddr)		.long	0	# paddr of PDP, for libkvm
+END(PDPpaddr)
+	.type	_C_LABEL(tablesize), @object
 _C_LABEL(tablesize):	.long	0
-
+END(tablesize)
+	.size	tmpstk, tmpstk - .
 	.space 512
 tmpstk:
 #ifdef XEN
 	.align 		PAGE_SIZE, 0x0	# Align on page boundary
-	.globl tmpgdt
-_C_LABEL(tmpgdt):
+LABEL(tmpgdt)
 	.space 		PAGE_SIZE	# Xen expects a page
+END(tmpgdt)
 #endif /* XEN */
-#ifndef XEN
-#define	_RELOC(x)	((x) - KERNBASE)
-#else
-#define	_RELOC(x)	((x))
-#endif /* XEN */
-#define	RELOC(x)	_RELOC(_C_LABEL(x))
 
 	.text
 	.globl	_C_LABEL(kernel_text)
 	.set	_C_LABEL(kernel_text),KERNTEXTOFF
 
-	.globl	start
+ENTRY(start)
 #ifndef XEN
-start:	movw	$0x1234,0x472			# warm boot
-
+	movw	$0x1234,0x472			# warm boot
 #if defined(MULTIBOOT)
 	jmp	1f
 
@@ -752,7 +776,6 @@ begin:
 
 	call 	_C_LABEL(main)
 #else /* XEN */
-start:
 	/* First, reset the PSL. */
 	pushl	$PSL_MBO
 	popfl
@@ -816,6 +839,8 @@ start:
 	call	_C_LABEL(init386)	# wire 386 chip for unix operation
 	addl	$PDE_SIZE,%esp		# pop paddr_t
 	call 	_C_LABEL(main)
+#endif /* defined(XEN) */
+END(start)
 
 #if defined(XEN)
 /* space for the hypercall call page */
@@ -823,7 +848,7 @@ start:
 .org HYPERCALL_PAGE_OFFSET
 ENTRY(hypercall_page)
 .skip 0x1000
-#endif /* defined(XEN) */
+END(hypercall_page)
 
 /*
  * void lgdt_finish(void);

Reply via email to