.tocf pseudo-op

Finalidad

Permite que la definición de un símbolo local sea la tabla de contenido de un símbolo externo para que el símbolo local pueda utilizarse en expresiones.

Sintaxis

Elemento Descripción
.tocf Name1, Name2

Descripción

El pseudo-op .tocf declara que el parámetro Name2 es un símbolo global y marca el símbolo Name1 como la tabla de contenido (TOC) de otro módulo que contiene el símbolo Name2. Como resultado, se puede definir un símbolo local como el TOC de un símbolo externo para que el símbolo local se pueda utilizar en expresiones o para hacer referencia al TOC del módulo llamado, normalmente en una sentencia .tc . Esta pseudo-op genera una entrada de Diccionario de reubicación (RLD) que hace que estos datos se inicialicen en la dirección de los símbolos externos TOC. El pseudo-op de .tocf se puede utilizar para llamadas intermódulos que requieren que el llamante cargue primero la dirección del TOC del módulo llamado antes de transferir el control.

Parámetros

Elemento Descripción
Name1 Especifica un símbolo local que actúa como TOC de un módulo que contiene el valor Name2 . El símbolo Name1 debe aparecer en las sentencias .tc .
Name2 Especifica un símbolo global que existe dentro de un módulo que contiene una TOC.

Ejemplos

El ejemplo siguiente ilustra el uso de la pseudo-op de .tocf :


tocbeg:   .toc
apb:   .tc [tc],pb,tpb
# This is an unnamed TOC entry
# that contains two addresses:
# the address of pb and 
# the address of the TOC
# containing pb.
.tocof tpb,pb   
.set always,0x14
.csect [PR]
.using tocbeg,rtoc
l 14,apb
# Load R14 with the address
# of pb.
l rtoc,apb+4
# Load the TOC register with the
# address pb's TOC.
mtspr lr,14
# Move to Link Register.
bcr always,0
# Branch Conditional Register branch
# address is contained in the Link
# register.