* rx/crt0.S: Initialise the PID address register.
(__pid_base): Define weakly.
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
/* Copyright (c) 2008, 2009 Red Hat Incorporated.
|
||||
/* Copyright (c) 2008, 2009, 2011 Red Hat Incorporated.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
@ -50,11 +50,20 @@ _start:
|
||||
mov #__bsssize, r3
|
||||
sstr.l
|
||||
|
||||
/* Initialise the small data area pointer.
|
||||
The register used here must agree with the definition of
|
||||
GP_BASE_REGNUM in gcc/config/rx/rx.h. */
|
||||
/* Initialize data pointer register(s).
|
||||
Note: The registers used here should agree with the definition of
|
||||
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
|
||||
|
||||
#endif
|
||||
|
||||
bsr.a __rx_init
|
||||
|
||||
#ifdef PROFILE_SUPPORT /* Defined in gcrt0.S. */
|
||||
@ -129,6 +138,12 @@ __rx_init:
|
||||
__rx_fini:
|
||||
bsr.a _rx_run_fini_array
|
||||
|
||||
.section .rodata
|
||||
.balign 4
|
||||
.global __pid_base
|
||||
.weak __pid_base
|
||||
__pid_base:
|
||||
|
||||
.section .sdata
|
||||
.balign 4
|
||||
.global __gp
|
||||
|
Reference in New Issue
Block a user