IOB Cleanup Routines 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 1 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 0 1 MODULE XZAP ( IDENT = 'X00.07' %TITLE 'IOB Cleanup Routines' 0 2 %BLISS32( ,ADDRESSING_MODE( EXTERNAL=LONG_RELATIVE ) ) 0 3 %BLISS36( ,ENTRY( XPO$ZAP_IOB, XPO$LEAVE_IOB, XPO$ZERO_IOB ),OTS='' ) 0 4 ) = 0 5 BEGIN 1 6 1 7 ! 1 8 ! COPYRIGHT (c) 1980 BY 1 9 ! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. 1 10 ! 1 11 ! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED 1 12 ! ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE 1 13 ! INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER 1 14 ! COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY 1 15 ! OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY 1 16 ! TRANSFERRED. 1 17 ! 1 18 ! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE 1 19 ! AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT 1 20 ! CORPORATION. 1 21 ! 1 22 ! DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS 1 23 ! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. 1 24 ! 1 25 1 26 !++ 1 27 ! 1 28 ! FACILITY: BLISS Library 1 29 ! 1 30 ! ABSTRACT: 1 31 ! 1 32 ! This module is used internally by XPORT to clean up the IOB. 1 33 ! 1 34 ! ENVIRONMENT: User Mode - multiple host operating/file systems 1 35 ! 1 36 ! AUTHOR: Linda Duffell CREATION DATE: 29 February 1980 1 37 ! Ward Clark 1 38 ! 1 39 !-- XZAP IOB Cleanup Routines 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 2 X00.07 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 1 41 ! 1 42 ! TABLE OF CONTENTS: 1 43 ! 1 44 1 45 FORWARD ROUTINE 1 46 XPO$ZAP_IOB, ! XPORT IOB reset routine 1 47 XPO$LEAVE_IOB, ! XPORT IOB cleanup routine 1 48 XPO$ZERO_IOB : NOVALUE; ! XPORT IOB field reset routine 1 49 1 50 ! 1 51 ! INCLUDE FILES: 1 52 ! 1 53 1 54 LIBRARY 'XPORT' ; ! Public XPORT control block and macro definitions 1 56 LIBRARY 'XPOSYS' ; ! Internal XPORT macro definitions 1 58 1 59 $XPO_SYS_TEST( $TOPS10, $TOPS20, $VMS, $11M, $RSTS, $RT11 ) ; %PRINT: This module was compiled for VAX/VMS ; %PRINT: XPORT V1.3-51 XPOSYS V1.3-16 XPO$K_VERSION = 1 XPO$K_LEVEL = 3 1 60 1 61 ! 1 62 ! MACROS: 1 63 ! 1 64 1 65 MACRO 1 66 iob_free_temp( iob_field ) = M 1 67 IF .iob_field NEQ 0 M 1 68 THEN M 1 69 BEGIN M 1 70 LOCAL status; M 1 71 M 1 72 status = $STR_FREE_TEMP( .iob_field ); M 1 73 M 1 74 IF NOT .status M 1 75 THEN M 1 76 RETURN .status; M 1 77 M 1 78 IF .status NEQ STR$_NOT_TEMP M 1 79 THEN M 1 80 iob_field = 0; M 1 81 END; %; 1 82 1 83 ! 1 84 ! EQUATED SYMBOLS: 1 85 ! 1 86 1 87 ! 1 88 ! PSECT DECLARATIONS: 1 89 ! 1 90 1 91 $XPO_PSECTS ! Declare XPORT PSECT names and attributes 1 92 1 93 ! 1 94 ! OWN STORAGE: 1 95 ! 1 96 1 97 ! XZAP IOB Cleanup Routines 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 3 X00.07 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 1 98 ! EXTERNAL REFERENCES: 1 99 ! 1 100 1 101 %IF $TOPS10 %THEN U 1 102 EXTERNAL ROUTINE U 1 103 X10$CLEANUP; ! IOB's TOPS10 control block cleanup routine U 1 104 %FI 1 105 1 106 %IF $VMS %THEN 1 107 EXTERNAL ROUTINE 1 108 XPO$RMS_CLEANUP; ! IOB's RMS control block cleanup routine 1 109 %FI 1 110 1 111 %IF $11M %THEN U 1 112 EXTERNAL ROUTINE U 1 113 XRSX$CLEANUP; ! IOB's FCS control block cleanup routine U 1 114 %FI XZAP XPO$ZAP_IOB - Reset IOB to Init 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 4 X00.07 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 1 116 %TITLE 'XPO$ZAP_IOB - Reset IOB to Initialized State' 1 117 1 118 GLOBAL ROUTINE XPO$ZAP_IOB( iob ) = 1 119 1 120 !++ 1 121 ! 1 122 ! FUNCTIONAL DESCRIPTION: 1 123 ! 1 124 ! This routine resets an IOB to an initialized state. 1 125 ! 1 126 ! FORMAL PARAMETERS: 1 127 ! 1 128 ! iob - address of an IOB 1 129 ! 1 130 ! IMPLICIT INPUTS: 1 131 ! 1 132 ! None 1 133 ! 1 134 ! IMPLICIT OUTPUTS: 1 135 ! 1 136 ! None 1 137 ! 1 138 ! COMPLETION CODES: 1 139 ! 1 140 ! XPO$_NORMAL - normal completion code 1 141 ! 1 142 ! failure completion code from XPO$LEAVE_IOB 1 143 ! failure completion code from $XPO_FREE_MEM 1 144 ! failure completion code from $STR_FREE_TEMP 1 145 ! 1 146 ! SIDE EFFECTS: 1 147 ! 1 148 ! None 1 149 ! 1 150 !-- 1 151 1 152 BEGIN 2 153 2 154 MAP 2 155 iob : REF $XPO_IOB(); ! Redefine the IOB parameter 2 156 2 157 ! 2 158 ! Perform initial IOB cleanup. 2 159 ! 2 160 2 161 $XPO_IF_NOT( xpo$leave_iob( .iob ) ) 4 162 THEN 3 163 RETURN .$XPO_STATUS; 2 164 2 165 ! 2 166 ! Free the resultant file-spec. 2 167 ! 2 168 2 169 $XPO_IF_NOT( $XPO_FREE_MEM( STRING = iob[IOB$T_RESULTANT], P 2 170 FAILURE = 0 ) ) 4 171 THEN 3 172 RETURN .$XPO_STATUS; XZAP XPO$ZAP_IOB - Reset IOB to Init 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 5 X00.07 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 2 173 2 174 ! 2 175 ! Return to the caller. 2 176 ! 2 177 2 178 RETURN XPO$_NORMAL 2 179 2 180 END; XZAP XPO$LEAVE_IOB - Leave IOB Ready 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 6 X00.07 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 1 182 %TITLE 'XPO$LEAVE_IOB - Leave IOB Ready for Reuse' 1 183 1 184 GLOBAL ROUTINE XPO$LEAVE_IOB( iob ) = 1 185 1 186 !++ 1 187 ! 1 188 ! FUNCTIONAL DESCRIPTION: 1 189 ! 1 190 ! This routine cleans up an IOB, leaving it in a state that the 1 191 ! current file can be reprocessed. 1 192 ! 1 193 ! FORMAL PARAMETERS: 1 194 ! 1 195 ! iob - address of an IOB 1 196 ! 1 197 ! IMPLICIT INPUTS: 1 198 ! 1 199 ! None 1 200 ! 1 201 ! IMPLICIT OUTPUTS: 1 202 ! 1 203 ! None 1 204 ! 1 205 ! COMPLETION CODES: 1 206 ! 1 207 ! XPO$_NORMAL - normal completion code 1 208 ! 1 209 ! failure completion code from X10$CLEANUP (TOPS10) 1 210 ! failure completion code from XPO$RMS_CLEANUP (VMS) 1 211 ! failure completion code from XRSX$CLEANUP (11M) 1 212 ! failure completion code from $XPO_FREE_MEM 1 213 ! failure completion code from $STR_FREE_TEMP 1 214 ! 1 215 ! SIDE EFFECTS: 1 216 ! 1 217 ! None 1 218 ! 1 219 !-- 1 220 1 221 BEGIN 2 222 2 223 MAP 2 224 iob : REF $XPO_IOB(); ! Redefine the IOB parameter 2 225 2 226 ! 2 227 ! Clean up the system dependent IOB locations. 2 228 ! 2 229 2 230 %IF $TOPS10 %THEN U 2 231 $XPO_IF_NOT( X10$CLEANUP( .iob ) ) ! Free the IOB's TOPS10 control blocks. U 2 232 THEN U 2 233 RETURN .$XPO_STATUS; U 2 234 %FI 2 235 2 236 %IF $VMS %THEN 2 237 $XPO_IF_NOT( XPO$RMS_CLEANUP( .iob ) ) ! Free the IOB's RMS control blocks. 4 238 THEN XZAP XPO$LEAVE_IOB - Leave IOB Ready 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 7 X00.07 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 3 239 RETURN .$XPO_STATUS; 2 240 %FI 2 241 2 242 %IF $11M %THEN U 2 243 $XPO_IF_NOT( XRSX$CLEANUP( .iob ) ) ! Free the IOB's FCS control blocks. U 2 244 THEN U 2 245 RETURN .$XPO_STATUS; U 2 246 %FI 2 247 2 248 ! 2 249 ! Free any temporary file-spec strings provided by the user. 2 250 ! 2 251 2 252 iob_free_temp( iob[IOB$A_FILE_SPEC] ); ! Primary file specification descriptor 2 253 2 254 iob_free_temp( iob[IOB$A_DEFAULT] ); ! Default file specification descriptor 2 255 2 256 iob_free_temp( iob[IOB$A_RELATED] ); ! Related file specification descriptor 2 257 2 258 iob_free_temp( iob[IOB$A_PROMPT] ); ! Read prompt descriptor 2 259 2 260 iob_free_temp( iob[IOB$A_OUTPUT] ); ! Character/binary output descriptor 2 261 2 262 ! 2 263 ! Free a saved concatenated input file specification. 2 264 ! 2 265 2 266 IF .iob[$SUB_FIELD(IOB$T_CONCAT,STR$B_CLASS)] NEQ 0 2 267 THEN 2 268 $XPO_IF_NOT( $XPO_FREE_MEM( STRING = iob[IOB$T_CONCAT], P 2 269 FAILURE = 0 ) ) 4 270 THEN 3 271 RETURN .$XPO_STATUS; 2 272 2 273 ! 2 274 ! Free a dynamic input buffer. 2 275 ! 2 276 2 277 IF .iob[$SUB_FIELD(IOB$T_STRING,STR$B_CLASS)] EQL STR$K_CLASS_DB 2 278 THEN 2 279 BEGIN 3 280 $XPO_IF_NOT( $XPO_FREE_MEM( STRING = iob[IOB$T_STRING], P 3 281 FAILURE = 0 ) ) 5 282 THEN 4 283 RETURN .$XPO_STATUS; 3 284 END 3 285 ELSE 2 286 BEGIN 3 287 iob[IOB$H_STRING] = 0; 3 288 iob[IOB$A_STRING] = 0; 3 289 END; 2 290 2 291 ! 2 292 ! Clear (zero) certain IOB fields. 2 293 ! 2 294 2 295 iob[IOB$V_REMEMBER] = 0; ! REMEMBER option XZAP XPO$LEAVE_IOB - Leave IOB Ready 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 8 X00.07 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 2 296 iob[IOB$V_STATUS] = 0; ! all file status indicators 2 297 2 298 xpo$zero_iob( .iob ); ! file attributes, sequence info, etc. 2 299 2 300 ! 2 301 ! Return to the caller. 2 302 ! 2 303 2 304 RETURN XPO$_NORMAL 2 305 2 306 END; XZAP XPO$ZERO_IOB - Reset Selected I 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 9 X00.07 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 1 308 %TITLE 'XPO$ZERO_IOB - Reset Selected IOB Fields' 1 309 1 310 GLOBAL ROUTINE XPO$ZERO_IOB( iob ) : NOVALUE = 1 311 1 312 !++ 1 313 ! 1 314 ! FUNCTIONAL DESCRIPTION: 1 315 ! 1 316 ! This routine zeros selected IOB fields as part of an explicit or 1 317 ! automatic file close. 1 318 ! 1 319 ! FORMAL PARAMETERS: 1 320 ! 1 321 ! iob - address of an IOB 1 322 ! 1 323 ! IMPLICIT INPUTS: 1 324 ! 1 325 ! None 1 326 ! 1 327 ! IMPLICIT OUTPUTS: 1 328 ! 1 329 ! None 1 330 ! 1 331 ! ROUTINE VALUE: 1 332 ! 1 333 ! None 1 334 ! 1 335 ! SIDE EFFECTS: 1 336 ! 1 337 ! None 1 338 ! 1 339 !-- 1 340 1 341 BEGIN 2 342 2 343 MAP 2 344 iob : REF $XPO_IOB(); ! Redefine the IOB parameter 2 345 2 346 ! 2 347 ! Clear (zero) certain IOB fields. 2 348 ! 2 349 2 350 iob[IOB$H_PAGE_NUMB] = 0; ! current page number 2 351 iob[IOB$G_SEQ_NUMB] = 0; ! sequence number of current record 2 352 iob[IOB$G_REC_SIZE] = 0; ! fixed record size 2 353 iob[IOB$G_BLK_SIZE] = 0; ! block size 2 354 2 355 IF .iob[IOB$V_INPUT] 2 356 THEN 2 357 iob[IOB$V_SEQUENCED] = 0; ! sequenced file if we're inputting 2 358 2 359 ! 2 360 ! Return to the caller. 2 361 ! 2 362 2 363 RETURN 2 364 XZAP XPO$ZERO_IOB - Reset Selected I 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 10 X00.07 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 2 365 END; 1 366 END 1 367 ELUDOM XZAP Machine Code Listing 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 11 X00.07 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 .psect _XPO$CODE, CON, LCL, SHR, EXE, NOWRT, NOVEC .proc XPO$ZAP_IOB .align 32 .global XPO$ZAP_IOB XPO$ZAP_IOB: // 000118 { .mii 002C00D24AC0 0000 alloc r43 = rspfs, 1, 12, 5, 0 000188000A80 0001 mov r42 = br0 0000B2000B40 0002 sxt4 r45 = IOB // r45 = r32 // 000161 } { .mfb 010800100B00 0010 mov r44 = r1 // 000118 000008000000 0011 nop.f 0 004000000000 0012 nop.b 0 ;; } { .mfb 000008000000 0020 nop.m 0 000008000000 0021 nop.f 0 00A000001000 0022 br.call.sptk.many br0 = XPO$LEAVE_IOB // 000161 } { .mib 000008000000 0030 nop.m 0 00A0308001C0 0031 tbit.z pr7, pr6 = $XPO$STATUS, 0 // pr7, pr6 = r8, 0 008600004006 0032 (pr6) br.cond.dpnt.few L$41 } { .mfb 000008000000 0040 nop.m 0 000008000000 0041 nop.f 0 008000010000 0042 br.sptk.few L$44 ;; } 0050 L$41: // 000170 { .mii 010802038B80 0050 adds r46 = 28, IOB // r46 = 28, r32 01200000A640 0051 mov r25 = 5 0000B0000C40 0052 sxt4 r49 = r0 ;; } { .mii 000008000000 0060 nop.m 0 0000B2E00B40 0061 sxt4 r45 = r46 0000B0000C00 0062 sxt4 r48 = r0 } { .mib 0119F80FCB80 0070 adds r46 = -2, r0 0000B0000BC0 0071 sxt4 r47 = r0 00A000001000 0072 br.call.sptk.many br0 = XPO$FREE_MEM } { .mib 010802C00040 0080 mov r1 = r44 00A0308001C0 0081 tbit.z pr7, pr6 = $XPO$STATUS, 0 // pr7, pr6 = r8, 0 004000000000 0082 nop.b 0 } { .mlx 000008000000 0090 nop.m 0 000000000000 0091 movl r40 = 2129921 ;; // 000178 0190004054 } { .mmi XZAP Machine Code Listing 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 12 X00.07 XPO$ZAP_IOB 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 010802800A46 00A0 (pr6) mov r41 = r40 ;; 010800800A47 00A1 (pr7) mov r41 = $XPO$STATUS // r41 = r8 000008000000 00A2 nop.i 0 ;; } { .mfi 010802900200 00B0 mov r8 = r41 000008000000 00B1 nop.f 0 000008000000 00B2 nop.i 0 ;; } 00C0 L$44: { .mib 000008000000 00C0 nop.m 0 0000B0800200 00C1 sxt4 r8 = r8 004000000000 00C2 nop.b 0 } { .mii 000008000000 00D0 nop.m 0 000154056000 00D1 mov.i rspfs = r43 000E00154000 00D2 mov br0 = r42 ;; } { .mfb 000008000000 00E0 nop.m 0 000008000000 00E1 nop.f 0 000108001100 00E2 br.ret.sptk.many br0 ;; } .endp XPO$ZAP_IOB Routine Size: 240 bytes, Routine Base: _XPO$CODE + 0000 .proc XPO$LEAVE_IOB .align 32 .global XPO$LEAVE_IOB XPO$LEAVE_IOB: // 000184 { .mii 002C00C22A80 00F0 alloc r42 = rspfs, 1, 11, 5, 0 000188000A40 00F1 mov r41 = br0 010800100AC0 00F2 mov r43 = r1 } { .mib 012000002640 0100 mov r25 = 1 // 000237 0000B2000B00 0101 sxt4 r44 = IOB // r44 = r32 004000000000 0102 nop.b 0 ;; } { .mfb 000008000000 0110 nop.m 0 000008000000 0111 nop.f 0 00A000001000 0112 br.call.sptk.many br0 = XPO$RMS_CLEANUP } { .mib 010802B00040 0120 mov r1 = r43 00A0308001C0 0121 tbit.z pr7, pr6 = $XPO$STATUS, 0 // pr7, pr6 = r8, 0 008600004006 0122 (pr6) br.cond.dpnt.few L$5 } { .mib 000008000000 0130 nop.m 0 0000B0800200 0131 sxt4 r8 = r8 // 000239 008000080000 0132 br.sptk.few L$7 ;; XZAP Machine Code Listing 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 13 X00.07 XPO$LEAVE_IOB 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 } 0140 L$5: // 000237 { .mii 000008000000 0140 nop.m 0 0000B20000C0 0141 sxt4 r3 = IOB ;; // r3 = r32 // 000252 010800300A00 0142 mov r40 = r3 } { .mmi 0108003080C0 0150 adds r3 = 4, r3 ;; 008080300280 0151 ld4 r10 = [r3] 000008000000 0152 nop.i 0 ;; } { .mfb 01C400A00240 0160 cmp4.eq pr9, pr0 = r0, r10 000008000000 0161 nop.f 0 00860000E009 0162 (pr9) br.cond.dpnt.few L$9 } { .mib 012000002640 0170 mov r25 = 1 0000B0A00B00 0171 sxt4 r44 = r10 00A000001000 0172 br.call.sptk.many br0 = XST$FREE_TEMP } { .mib 010802B00040 0180 mov r1 = r43 00A0308001C0 0181 tbit.z pr7, pr6 = STATUS, 0 // pr7, pr6 = r8, 0 008600004006 0182 (pr6) br.cond.dpnt.few L$10 } { .mib 000008000000 0190 nop.m 0 0000B0800200 0191 sxt4 r8 = r8 008000074000 0192 br.sptk.few L$7 ;; } 01A0 L$10: { .mlx 000008000000 01A0 nop.m 0 800000000000 01A1 movl r3 = 2394129 ;; 0191024441 } { .mfb 01C400310240 01B0 cmp4.eq pr9, pr0 = STATUS, r3 // pr9, pr0 = r8, r3 000008000000 01B1 nop.f 0 008600004009 01B2 (pr9) br.cond.dpnt.few L$9 } { .mmi 010802808A00 01C0 adds r40 = 4, r40 ;; 00BC8A801F00 01C1 st4 [r40] = r0, -4 000008000000 01C2 nop.i 0 ;; } 01D0 L$9: { .mmi 010802810A00 01D0 adds r40 = 8, r40 ;; // 000254 00B08A8F02C0 01D1 ld4 r11 = [r40], -8 000008000000 01D2 nop.i 0 ;; } { .mfb 01C400B002C0 01E0 cmp4.eq pr11, pr0 = r0, r11 000008000000 01E1 nop.f 0 XZAP Machine Code Listing 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 14 X00.07 XPO$LEAVE_IOB 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 00860000E00B 01E2 (pr11) br.cond.dpnt.few L$14 } { .mib 012000002640 01F0 mov r25 = 1 0000B0B00B00 01F1 sxt4 r44 = r11 00A000001000 01F2 br.call.sptk.many br0 = XST$FREE_TEMP } { .mib 010802B00040 0200 mov r1 = r43 00A0308001C0 0201 tbit.z pr7, pr6 = STATUS, 0 // pr7, pr6 = r8, 0 008600004006 0202 (pr6) br.cond.dpnt.few L$15 } { .mib 000008000000 0210 nop.m 0 0000B0800200 0211 sxt4 r8 = r8 008000064000 0212 br.sptk.few L$7 ;; } 0220 L$15: { .mlx 000008000000 0220 nop.m 0 800000000000 0221 movl r3 = 2394129 ;; 0191024441 } { .mfb 01C400310240 0230 cmp4.eq pr9, pr0 = STATUS, r3 // pr9, pr0 = r8, r3 000008000000 0231 nop.f 0 008600004009 0232 (pr9) br.cond.dpnt.few L$14 } { .mmi 010802810A00 0240 adds r40 = 8, r40 ;; 00BC8A801E00 0241 st4 [r40] = r0, -8 000008000000 0242 nop.i 0 ;; } 0250 L$14: { .mmi 010802818A00 0250 adds r40 = 12, r40 ;; // 000256 00B08A8E82C0 0251 ld4 r11 = [r40], -12 000008000000 0252 nop.i 0 ;; } { .mfb 01C400B002C0 0260 cmp4.eq pr11, pr0 = r0, r11 000008000000 0261 nop.f 0 00860000E00B 0262 (pr11) br.cond.dpnt.few L$19 } { .mib 012000002640 0270 mov r25 = 1 0000B0B00B00 0271 sxt4 r44 = r11 00A000001000 0272 br.call.sptk.many br0 = XST$FREE_TEMP } { .mib 010802B00040 0280 mov r1 = r43 00A0308001C0 0281 tbit.z pr7, pr6 = STATUS, 0 // pr7, pr6 = r8, 0 008600004006 0282 (pr6) br.cond.dpnt.few L$20 } { .mib 000008000000 0290 nop.m 0 0000B0800200 0291 sxt4 r8 = r8 XZAP Machine Code Listing 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 15 X00.07 XPO$LEAVE_IOB 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 008000054000 0292 br.sptk.few L$7 ;; } 02A0 L$20: { .mlx 000008000000 02A0 nop.m 0 800000000000 02A1 movl r3 = 2394129 ;; 0191024441 } { .mfb 01C400310240 02B0 cmp4.eq pr9, pr0 = STATUS, r3 // pr9, pr0 = r8, r3 000008000000 02B1 nop.f 0 008600004009 02B2 (pr9) br.cond.dpnt.few L$19 } { .mmi 010802818A00 02C0 adds r40 = 12, r40 ;; 00BC8A801D00 02C1 st4 [r40] = r0, -12 000008000000 02C2 nop.i 0 ;; } 02D0 L$19: { .mmi 010802848A00 02D0 adds r40 = 36, r40 ;; // 000258 00B08A8B82C0 02D1 ld4 r11 = [r40], -36 000008000000 02D2 nop.i 0 ;; } { .mfb 01C400B002C0 02E0 cmp4.eq pr11, pr0 = r0, r11 000008000000 02E1 nop.f 0 00860000E00B 02E2 (pr11) br.cond.dpnt.few L$24 } { .mib 012000002640 02F0 mov r25 = 1 0000B0B00B00 02F1 sxt4 r44 = r11 00A000001000 02F2 br.call.sptk.many br0 = XST$FREE_TEMP } { .mib 010802B00040 0300 mov r1 = r43 00A0308001C0 0301 tbit.z pr7, pr6 = STATUS, 0 // pr7, pr6 = r8, 0 008600004006 0302 (pr6) br.cond.dpnt.few L$25 } { .mib 000008000000 0310 nop.m 0 0000B0800200 0311 sxt4 r8 = r8 008000044000 0312 br.sptk.few L$7 ;; } 0320 L$25: { .mlx 000008000000 0320 nop.m 0 800000000000 0321 movl r3 = 2394129 ;; 0191024441 } { .mfb 01C400310240 0330 cmp4.eq pr9, pr0 = STATUS, r3 // pr9, pr0 = r8, r3 000008000000 0331 nop.f 0 008600004009 0332 (pr9) br.cond.dpnt.few L$24 } { .mmi 010802848A00 0340 adds r40 = 36, r40 ;; XZAP Machine Code Listing 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 16 X00.07 XPO$LEAVE_IOB 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 00BC8A801700 0341 st4 [r40] = r0, -36 000008000000 0342 nop.i 0 ;; } 0350 L$24: { .mmi 010802888A00 0350 adds r40 = 68, r40 ;; // 000260 00B08A8782C0 0351 ld4 r11 = [r40], -68 000008000000 0352 nop.i 0 ;; } { .mfb 01C400B002C0 0360 cmp4.eq pr11, pr0 = r0, r11 000008000000 0361 nop.f 0 00860000E00B 0362 (pr11) br.cond.dpnt.few L$29 } { .mib 012000002640 0370 mov r25 = 1 0000B0B00B00 0371 sxt4 r44 = r11 00A000001000 0372 br.call.sptk.many br0 = XST$FREE_TEMP } { .mib 010802B00040 0380 mov r1 = r43 00A0308001C0 0381 tbit.z pr7, pr6 = STATUS, 0 // pr7, pr6 = r8, 0 008600004006 0382 (pr6) br.cond.dpnt.few L$30 } { .mib 000008000000 0390 nop.m 0 0000B0800200 0391 sxt4 r8 = r8 008000034000 0392 br.sptk.few L$7 ;; } 03A0 L$30: { .mlx 000008000000 03A0 nop.m 0 800000000000 03A1 movl r3 = 2394129 ;; 0191024441 } { .mfb 01C400310240 03B0 cmp4.eq pr9, pr0 = STATUS, r3 // pr9, pr0 = r8, r3 000008000000 03B1 nop.f 0 008600004009 03B2 (pr9) br.cond.dpnt.few L$29 } { .mmi 010802888A00 03C0 adds r40 = 68, r40 ;; 00BC8A800F00 03C1 st4 [r40] = r0, -68 000008000000 03C2 nop.i 0 ;; } 03D0 L$29: { .mmi 010802826A00 03D0 adds r40 = 19, r40 ;; // 000266 00B00A8DA280 03D1 ld1 r10 = [r40], -19 000008000000 03D2 nop.i 0 ;; } { .mfb 01C400A002C0 03E0 cmp4.eq pr11, pr0 = r0, r10 000008000000 03E1 nop.f 0 00860000C00B 03E2 (pr11) br.cond.dpnt.few L$34 } { .mii XZAP Machine Code Listing 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 17 X00.07 XPO$LEAVE_IOB 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 010802020B40 03F0 adds r45 = 16, IOB // r45 = 16, r32 // 000269 01200000A640 03F1 mov r25 = 5 0000B0000C00 03F2 sxt4 r48 = r0 ;; } { .mii 000008000000 0400 nop.m 0 0000B2D00B00 0401 sxt4 r44 = r45 0000B0000BC0 0402 sxt4 r47 = r0 } { .mib 0119F80FCB40 0410 adds r45 = -2, r0 0000B0000B80 0411 sxt4 r46 = r0 00A000001000 0412 br.call.sptk.many br0 = XPO$FREE_MEM } { .mib 010802B00040 0420 mov r1 = r43 00A0308001C0 0421 tbit.z pr7, pr6 = $XPO$STATUS, 0 // pr7, pr6 = r8, 0 008600004006 0422 (pr6) br.cond.dpnt.few L$34 } { .mib 000008000000 0430 nop.m 0 0000B0800200 0431 sxt4 r8 = r8 // 000271 008000020000 0432 br.sptk.few L$7 ;; } 0440 L$34: // 000266 { .mii 01080286EA00 0440 adds r40 = 55, r40 // 000277 01200807C240 0441 mov r9 = 190 000008000000 0442 nop.i 0 ;; } { .mmi 00B00A8920C0 0450 ld1 r3 = [r40], -55 ;; 01C440906000 0451 cmp4.eq pr0, pr8 = r3, r9 000008000000 0452 nop.i 0 } { .mfb 000008000000 0460 nop.m 0 000008000000 0461 nop.f 0 00860000C008 0462 (pr8) br.cond.dpnt.few L$36 } { .mii 010802068B40 0470 adds r45 = 52, IOB // r45 = 52, r32 // 000281 01200000A640 0471 mov r25 = 5 0000B0000C00 0472 sxt4 r48 = r0 ;; } { .mii 000008000000 0480 nop.m 0 0000B2D00B00 0481 sxt4 r44 = r45 0000B0000BC0 0482 sxt4 r47 = r0 } { .mib 0119F80FCB40 0490 adds r45 = -2, r0 0000B0000B80 0491 sxt4 r46 = r0 00A000001000 0492 br.call.sptk.many br0 = XPO$FREE_MEM } { .mib 010802B00040 04A0 mov r1 = r43 XZAP Machine Code Listing 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 18 X00.07 XPO$LEAVE_IOB 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 00A0308001C0 04A1 tbit.z pr7, pr6 = $XPO$STATUS, 0 // pr7, pr6 = r8, 0 008600008006 04A2 (pr6) br.cond.dpnt.few L$38 } { .mib 000008000000 04B0 nop.m 0 0000B0800200 04B1 sxt4 r8 = r8 // 000283 008000010000 04B2 br.sptk.few L$7 ;; } 04C0 L$36: // 000277 { .mmi 010802870A00 04C0 adds r40 = 56, r40 ;; // 000288 00BC8A801F00 04C1 st4 [r40] = r0, -4 000008000000 04C2 nop.i 0 ;; } { .mmi 00BC4A801300 04D0 st2 [r40] = r0, -52 ;; // 000287 000008000000 04D1 nop.m 0 000008000000 04D2 nop.i 0 } 04E0 L$38: // 000277 { .mii 010802858A00 04E0 adds r40 = 44, r40 // 000295 013FFBCFE2C0 04E1 addl r11 = -1048577, r0 0000B2000B00 04E2 sxt4 r44 = IOB ;; // r44 = r32 // 000298 } { .mmi 008082800280 04F0 ld4 r10 = [r40] ;; // 000295 010060B14280 04F1 and r10 = r10, r11 000008000000 04F2 nop.i 0 ;; } { .mmi 00AC82814180 0500 st4 [r40] = r10, 6 ;; 008C42800000 0501 st2 [r40] = r0 // 000296 000008000000 0502 nop.i 0 } { .mfb 000008000000 0510 nop.m 0 000008000000 0511 nop.f 0 00A000001000 0512 br.call.sptk.many br0 = XPO$ZERO_IOB // 000298 } { .mlx 000008000000 0520 nop.m 0 000000000000 0521 movl r8 = 2129921 ;; // 000304 0190004044 } 0530 L$7: { .mii 000008000000 0530 nop.m 0 000154054000 0531 mov.i rspfs = r42 000E00152000 0532 mov br0 = r41 ;; } { .mfb 000008000000 0540 nop.m 0 000008000000 0541 nop.f 0 000108001100 0542 br.ret.sptk.many br0 ;; } .endp XPO$LEAVE_IOB XZAP Machine Code Listing 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 19 X00.07 XPO$LEAVE_IOB 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 Routine Size: 1120 bytes, Routine Base: _XPO$CODE + 00F0 .proc XPO$ZERO_IOB .align 32 .global XPO$ZERO_IOB XPO$ZERO_IOB: // 000310 { .mii 002C00204840 0550 alloc r33 = rspfs, 1, 1, 0, 0 0000B2000800 0551 sxt4 r32 = IOB ;; // r32 = r32 // 000350 010802058800 0552 adds r32 = 44, r32 ;; // 000355 } { .mmi 00A08203C0C0 0560 ld4 r3 = [r32], 30 ;; 00AC42000480 0561 st2 [r32] = r0, 18 // 000350 00A4003400C0 0562 extr.u r3 = r3, 16, 1 ;; // 000355 } { .mii 00BC8A001F00 0570 st4 [r32] = r0, -4 // 000353 00A0303001C0 0571 tbit.z pr7, pr6 = r3, 0 ;; // 000355 000008000000 0572 nop.i 0 } { .mmi 00BC8A001D00 0580 st4 [r32] = r0, -12 ;; // 000352 00BC8A000D00 0581 st4 [r32] = r0, -76 // 000351 000008000000 0582 nop.i 0 } { .mfb 000008000000 0590 nop.m 0 000008000000 0591 nop.f 0 008600006007 0592 (pr7) br.cond.dpnt.few L$3 ;; // 000355 } { .mmi 010802060800 05A0 adds r32 = 48, r32 ;; // 000357 008082000200 05A1 ld4 r8 = [r32] 000008000000 05A2 nop.i 0 ;; } { .mmi 0111608DE200 05B0 and r8 = -17, r8 ;; 008C82010000 05B1 st4 [r32] = r8 000008000000 05B2 nop.i 0 } 05C0 L$3: // 000355 { .mib 000008000000 05C0 nop.m 0 000154042000 05C1 mov.i rspfs = r33 // 000363 004000000000 05C2 nop.b 0 } { .mfi 000008000000 05D0 nop.m 0 000008000000 05D1 nop.f 0 000008000000 05D2 nop.i 0 ;; } { .mfb 000008000000 05E0 nop.m 0 000008000000 05E1 nop.f 0 000108001100 05E2 br.ret.sptk.many br0 ;; XZAP Machine Code Listing 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 20 X00.07 XPO$ZERO_IOB 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 } .endp XPO$ZERO_IOB Routine Size: 160 bytes, Routine Base: _XPO$CODE + 0550 .section .data .type XPO$FREE_MEM, @function .global XPO$FREE_MEM .section .data .type XPO$RMS_CLEANUP, @function .global XPO$RMS_CLEANUP .section .data .type XST$FREE_TEMP, @function .global XST$FREE_TEMP .section .data .type XST$FREE_TEMP, @function .global XST$FREE_TEMP .section .data .type XST$FREE_TEMP, @function .global XST$FREE_TEMP .section .data .type XST$FREE_TEMP, @function .global XST$FREE_TEMP .section .data .type XST$FREE_TEMP, @function .global XST$FREE_TEMP .section .data .type XPO$FREE_MEM, @function .global XPO$FREE_MEM .section .data .type XPO$FREE_MEM, @function .global XPO$FREE_MEM ; Library Statistics ; ; -------- Symbols -------- Pages ; File Total Loaded Percent Mapped ; ; DISK$NORMS_OWN:[LASTOVICA.XPORT.VMSGEN]XPORT.L32;14 ; 590 91 15 270 ; DISK$NORMS_OWN:[LASTOVICA.XPORT.VMSGEN]XPOSYS.L32;14 ; 91 11 12 27 Source Listing 4-FEB-2004 11:01:43 BLISS-32I T1.1-053 Page 21 Source Listing 19-MAR-2002 10:12:48 [LASTOVICA.XPORT.VMSGEN]XZAP.BLI;1 COMMAND LINE: BLISSXZAP/VARIANT=3/LIST/DEBUG