* rx/crt0.S: Initialise the PID address register.

(__pid_base): Define weakly.
This commit is contained in:
Nick Clifton 2011-10-07 10:09:22 +00:00
parent 7bbfea993a
commit fe81c303e0
2 changed files with 25 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2011-10-07 Nick Clifton <nickc@redhat.com>
* rx/crt0.S: Initialise the PID address register.
(__pid_base): Define weakly.
2011-09-29 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> 2011-09-29 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* arm/crt0.s: Support 0 heap base response from HeapInfo syscall. * arm/crt0.s: Support 0 heap base response from HeapInfo syscall.

View File

@ -1,4 +1,4 @@
/* Copyright (c) 2008, 2009 Red Hat Incorporated. /* Copyright (c) 2008, 2009, 2011 Red Hat Incorporated.
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
@ -50,11 +50,20 @@ _start:
mov #__bsssize, r3 mov #__bsssize, r3
sstr.l sstr.l
/* Initialise the small data area pointer. /* Initialize data pointer register(s).
The register used here must agree with the definition of Note: The registers used here should agree with the definition of
GP_BASE_REGNUM in gcc/config/rx/rx.h. */ GP_BASE_REGNUM in gcc/config/rx/rx.h.
Note: We are assuming that -mint-register has not been used when
compiling the application. */
#ifdef _RX_PID
/* Initialise the constant data pointer and small data pointers. */
mov #__pid_base, r13
mov #__gp, r12
#else
/* Initialise the small data area pointer. */
mov #__gp, r13 mov #__gp, r13
#endif
bsr.a __rx_init bsr.a __rx_init
#ifdef PROFILE_SUPPORT /* Defined in gcrt0.S. */ #ifdef PROFILE_SUPPORT /* Defined in gcrt0.S. */
@ -129,6 +138,12 @@ __rx_init:
__rx_fini: __rx_fini:
bsr.a _rx_run_fini_array bsr.a _rx_run_fini_array
.section .rodata
.balign 4
.global __pid_base
.weak __pid_base
__pid_base:
.section .sdata .section .sdata
.balign 4 .balign 4
.global __gp .global __gp