[ Previous | Next | Contents | Home | Search ]
AIX Version 4.3 Assembler Language Reference

.tbtag Pseudo-op

Purpose

Defines a debug traceback tag, preceded by a word of zeros, that can perform tracebacks for debugging programs.

Syntax

.tbtag Expression1,Expression2,Expression3,Expression4,Expression5,Expression6, Expression7,Expression8,[Expression9,Expression10,Expression11,Expression12, Expression13,Expression14,Expression15,Expression16]

Description

The .tbtag pseudo-op defines a traceback tag by assembling Expressions into consecutive bytes, words, and halfwords, depending on field requirements. An instruction can contain either 8 expressions (Expression1 through Expression8) or 16 expressions (Expression1 through Expression16). Anything else is a syntax error. A compiler customarily inserts the traceback information into a program at the end of the machine instructions, adding a string of zeros to signal the start of the information.

Parameters

Expression1 version /*Traceback format version */
Byte
Expression2 lang /*Language values */
Byte
TB_C 0
TB_FORTRAN 1
TB_PASCAL 2
TB_ADA 3
TB_PL1 4
TB_BASIC 5
TB_LISP 6
TB_COBOL 7
TB_MODULA2 8
TB_CPLUSPLUS 9
TB_RPG 10
TB_PL8 11
TB_ASM 12
Expression3 /*Traceback control bits */
Byte
globallink Bit 7. Set if routine is global linkage.
is_eprol Bit 6. Set if out-of-town epilog/prologue.
has_tboff Bit 5. Set if offset from start of proc stored.
int_proc Bit 4. Set if routine is internal.
has_ctl Bit 3. Set if routine involves controlled storage.
tocless Bit 2. Set if routine contains no TOC.
fp_present Bit 1. Set if routine performs FP operations.
log_abort Bit 0. Set if routine involves controlled storage.
Expression4 /*Traceback control bits (continued) */
Byte
int_hndl Bit 7. Set if routine is interrupt handler.
name_present Bit 6. Set if name is present in proc table.
uses_alloca Bit 5. Set if alloca used to allocate storage.
cl_dis_inv Bits 4, 3, 2. On-condition directives
WALK_ONCOND 0 Walk stack; don't restore state
DISCARD_ONCOND 1 Walk the stack and discard.
INVOKE_ONCOND 1 Invoke specific system routine
saves_cr Bit 1. Set if procedure saves condition register.
saves_lr Bit 0. Set if procedure saves link register.
Expression5 /*Traceback control bits (continued) */
Byte
stores_bc Bit 7. Set if procedure stores the backchain.
spare2 Bit 6. Spare bit.
fpr_saved Bits 5, 4, 3, 2, 1, 0. Number of FPRs saved, max 32.
Expression6 /*Traceback control bits (continued) */
Byte
spare3 Bits 7, 6. Spare bits.
gpr_saved Bits 5, 4, 3, 2, 1, 0. Number of GPRs saved, max 32.
Expression7 fixedparms /*Traceback control bits (continued) */
Byte
Expression8
Byte
floatparms Bits 7, 6, 5, 4, 3, 2,1. Number of floating point parameters.
parmsonstk Bit 0. Set if all parameters placed on stack.
Expression9 parminfo /*Order and type coding of parameters */
Word
'0' Fixed parameter.
'10' Single-precision float parameter.
'11' Double-precision float parameter.
Expression10 tb_offset /*Offset from start of code to tb table */
Word
Expression11 hand_mask /*What interrupts are handled */
Word
Expression12 ctl_info /*Number of CTL anchors */
Word
Expression13 ctl_info_disp /*Displacements of each anchor into stack*/
Word
Expression14 name_len /*Length of procedure name */
Halfword
Expression15 name /*Name */
Byte
Expression16 alloca_reg /*Register for alloca automatic storage*/
Byte

Examples

The following example illustrates the use of the .tbtag pseudo-op:

   .tbtag 1,0,0xff,0,0,16,0,0

Related Information

Pseudo-ops Overview.

The .byte pseudo-op.


[ Previous | Next | Contents | Home | Search ]