[ Bottom of Page | Previous Page | Next Page | Contents | Index | Library Home | Legal | Search ]

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.

Traceback Tags.

.byte Pseudo-op.

[ Top of Page | Previous Page | Next Page | Contents | Index | Library Home | Legal | Search ]