Wed, 31 Dec 2014 07:53:36 +0100
Correct small whitespace inconsistency, lost while renaming variables.
michael@0 | 1 | # -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- |
michael@0 | 2 | # |
michael@0 | 3 | # This Source Code Form is subject to the terms of the Mozilla Public |
michael@0 | 4 | # License, v. 2.0. If a copy of the MPL was not distributed with this |
michael@0 | 5 | # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
michael@0 | 6 | |
michael@0 | 7 | .set r0,0; .set SP,1; .set RTOC,2; .set r3,3; .set r4,4 |
michael@0 | 8 | .set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 |
michael@0 | 9 | .set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 |
michael@0 | 10 | .set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 |
michael@0 | 11 | .set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 |
michael@0 | 12 | .set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 |
michael@0 | 13 | .set r30,30; .set r31,31 |
michael@0 | 14 | |
michael@0 | 15 | |
michael@0 | 16 | .rename H.10.NO_SYMBOL{PR},"" |
michael@0 | 17 | .rename H.18.longjmp{TC},"longjmp" |
michael@0 | 18 | |
michael@0 | 19 | .lglobl H.10.NO_SYMBOL{PR} |
michael@0 | 20 | .globl .longjmp |
michael@0 | 21 | .globl longjmp{DS} |
michael@0 | 22 | .extern .sigcleanup |
michael@0 | 23 | .extern .jmprestfpr |
michael@0 | 24 | |
michael@0 | 25 | # .text section |
michael@0 | 26 | |
michael@0 | 27 | .csect H.10.NO_SYMBOL{PR} |
michael@0 | 28 | .longjmp: |
michael@0 | 29 | mr r13,r3 |
michael@0 | 30 | mr r14,r4 |
michael@0 | 31 | stu SP,-56(SP) |
michael@0 | 32 | bl .sigcleanup |
michael@0 | 33 | l RTOC,0x14(SP) |
michael@0 | 34 | cal SP,0x38(SP) |
michael@0 | 35 | mr r3,r13 |
michael@0 | 36 | mr r4,r14 |
michael@0 | 37 | l r5,0x8(r3) |
michael@0 | 38 | l SP,0xc(r3) |
michael@0 | 39 | l r7,0xf8(r3) |
michael@0 | 40 | st r7,0x0(SP) |
michael@0 | 41 | l RTOC,0x10(r3) |
michael@0 | 42 | bl .jmprestfpr |
michael@0 | 43 | # 1 == cr0 in disassembly |
michael@0 | 44 | cmpi 1,r4,0x0 |
michael@0 | 45 | mtlr r5 |
michael@0 | 46 | lm r13,0x14(r3) |
michael@0 | 47 | l r5,0x60(r3) |
michael@0 | 48 | mtcrf 0x38,r5 |
michael@0 | 49 | mr r3,r4 |
michael@0 | 50 | bne __L1 |
michael@0 | 51 | lil r3,0x1 |
michael@0 | 52 | __L1: |
michael@0 | 53 | br |
michael@0 | 54 | |
michael@0 | 55 | # traceback table |
michael@0 | 56 | .long 0x00000000 |
michael@0 | 57 | .byte 0x00 # VERSION=0 |
michael@0 | 58 | .byte 0x00 # LANG=TB_C |
michael@0 | 59 | .byte 0x20 # IS_GL=0,IS_EPROL=0,HAS_TBOFF=1 |
michael@0 | 60 | # INT_PROC=0,HAS_CTL=0,TOCLESS=0 |
michael@0 | 61 | # FP_PRESENT=0,LOG_ABORT=0 |
michael@0 | 62 | .byte 0x40 # INT_HNDL=0,NAME_PRESENT=1 |
michael@0 | 63 | # USES_ALLOCA=0,CL_DIS_INV=WALK_ONCOND |
michael@0 | 64 | # SAVES_CR=0,SAVES_LR=0 |
michael@0 | 65 | .byte 0x80 # STORES_BC=1,FPR_SAVED=0 |
michael@0 | 66 | .byte 0x00 # GPR_SAVED=0 |
michael@0 | 67 | .byte 0x02 # FIXEDPARMS=2 |
michael@0 | 68 | .byte 0x01 # FLOATPARMS=0,PARMSONSTK=1 |
michael@0 | 69 | .long 0x00000000 # |
michael@0 | 70 | .long 0x00000014 # TB_OFFSET |
michael@0 | 71 | .short 7 # NAME_LEN |
michael@0 | 72 | .byte "longjmp" |
michael@0 | 73 | .byte 0 # padding |
michael@0 | 74 | .byte 0 # padding |
michael@0 | 75 | .byte 0 # padding |
michael@0 | 76 | # End of traceback table |
michael@0 | 77 | .long 0x00000000 # "\0\0\0\0" |
michael@0 | 78 | |
michael@0 | 79 | # .data section |
michael@0 | 80 | |
michael@0 | 81 | .toc # 0x00000038 |
michael@0 | 82 | T.18.longjmp: |
michael@0 | 83 | .tc H.18.longjmp{TC},longjmp{DS} |
michael@0 | 84 | |
michael@0 | 85 | .csect longjmp{DS} |
michael@0 | 86 | .long .longjmp # "\0\0\0\0" |
michael@0 | 87 | .long TOC{TC0} # "\0\0\0008" |
michael@0 | 88 | .long 0x00000000 # "\0\0\0\0" |
michael@0 | 89 | # End csect longjmp{DS} |
michael@0 | 90 | |
michael@0 | 91 | # .bss section |