From e0feef893279c6b1038c013d7fe739273c500103 Mon Sep 17 00:00:00 2001 From: obarthel Date: Sun, 4 Dec 2016 11:10:13 +0100 Subject: [PATCH] Moved __CXV54 into sas_cxv.asm sas_cxv54.asm is no longer needed. --- library/sas_cxv.asm | 38 +++++++++++++++++++++++++++ library/sas_cxv54.asm | 61 ++++++++++++++++++------------------------- 2 files changed, 64 insertions(+), 35 deletions(-) diff --git a/library/sas_cxv.asm b/library/sas_cxv.asm index decf9b8..d45e0c1 100644 --- a/library/sas_cxv.asm +++ b/library/sas_cxv.asm @@ -37,6 +37,7 @@ xdef __CXV25 xdef __CXV35 + xdef __CXV45 xdef __CXNRM5 xdef __CXTAB5 @@ -74,6 +75,43 @@ L44: MOVE.W D0,D1 MOVEM.L (SP)+,D2-D5/A1 RTS +__CXV45: + + MOVE.L D0,D1 + SWAP D1 + AND.W #$7FFF,D1 + CMP.W #$80,D1 + BLT .1 + CMP.W #$7F80,D1 + BGE .3 + ASR.L #3,D0 + AND.L #$8FFFFFFF,D0 + ADD.L #$38000000,D0 + SWAP D1 + AND.L #7,D1 + ROR.L #3,D1 +.2 RTS + +.1 TST.L D1 + BEQ.S .2 + MOVEM.L D2-D5,-(SP) + SWAP D0 + MOVE.W D0,D4 + AND.W #$8000,D4 + MOVE.W #$39D0,D5 + MOVEQ #0,D0 + SWAP D1 + JSR __CXNRM5(PC) + MOVEM.L (SP)+,D2-D5 + RTS + +.3 ASR.L #3,D0 + OR.L #$7FF00000,D0 + SWAP D1 + AND.L #7,D1 + ROR.L #3,D1 + RTS + __CXNRM5: CMP.L #$20,D0 diff --git a/library/sas_cxv54.asm b/library/sas_cxv54.asm index 21e7881..bca4f9a 100644 --- a/library/sas_cxv54.asm +++ b/library/sas_cxv54.asm @@ -1,6 +1,4 @@ * -* $Id: sas_cxv54.asm,v 1.1.1.1 2004-07-26 16:31:04 obarthel Exp $ -* * :ts=8 * * Adapted from reassembled SAS/C runtime library code. @@ -38,7 +36,8 @@ xdef __CXV54 xref __CXFERR -__CXV54 +__CXV54: + MOVEM.L A0/A1,-(SP) MOVE.L D4,A0 SWAP D0 @@ -47,11 +46,11 @@ __CXV54 EOR.W D4,D0 SUB.W #$3800,D0 CMP.W #$10,D0 - BLT lbC000098 + BLT lab098 CMP.W #$FEF,D0 - BLT lbC000102 + BLT lab102 CMP.W #$47F0,D0 - BLT lbC000058 + BLT lab058 SWAP D0 LSL.L #3,D0 ROL.L #3,D1 @@ -59,17 +58,16 @@ __CXV54 EOR.L D1,D0 SWAP D0 OR.W #$7F80,D0 - BRA lbC000112 + BRA lab112 -lbC000058 - CMP.W #$FF0,D0 - BGE lbC000074 +lab058: CMP.W #$FF0,D0 + BGE lab074 CMP.L #$FFFF0FEF,D0 - BNE lbC000102 + BNE lab102 CMP.L #$F0000000,D1 - BCS lbC000102 -lbC000074 - MOVEM.L D0/D1/A0/A1,-(SP) + BCS lab102 + +lab074: MOVEM.L D0/D1/A0/A1,-(SP) PEA 2.L JSR __CXFERR ADDQ.W #4,SP @@ -78,63 +76,56 @@ lbC000074 EOR.W D4,D0 SWAP D0 MOVEQ #0,D1 - BRA lbC000116 + BRA lab116 -lbC000098 - CMP.W #$FE90,D0 - BGE lbC0000C4 +lab098: CMP.W #$FE90,D0 + BGE lab0C4 ADD.W #$3800,D0 OR.L D1,D0 - BEQ lbC000112 + BEQ lab112 MOVEM.L D0/D1/A0/A1,-(SP) PEA 1.L JSR __CXFERR ADDQ.W #4,SP MOVEM.L (SP)+,D0/D1/A0/A1 MOVEQ #0,D0 - BRA lbC000112 + BRA lab112 -lbC0000C4 - MOVE.L D5,A1 +lab0C4: MOVE.L D5,A1 MOVE.W D0,D5 AND.W #15,D0 EOR.W #$10,D0 SWAP D0 ASR.W #4,D5 ADDQ.W #2,D5 - BGE lbC0000E6 + BGE lab0E6 NEG.W D5 LSR.L D5,D0 MOVEQ #0,D5 ADDX.L D5,D0 - BRA lbC0000F6 + BRA lab0F6 -lbC0000E6 - CLR.W D1 +lab0E6: CLR.W D1 LSL.L D5,D0 ADDQ.W #1,D5 ROXL.L D5,D1 AND.L #15,D1 ADDX.L D1,D0 -lbC0000F6 - MOVE.L A1,D5 +lab0F6: MOVE.L A1,D5 SWAP D0 EOR.W D4,D0 SWAP D0 - BRA lbC000116 + BRA lab116 -lbC000102 - SWAP D0 +lab102: SWAP D0 LSL.L #3,D0 ROXL.L #4,D1 AND.L #7,D1 ADDX.L D1,D0 SWAP D0 -lbC000112 - EOR.W D4,D0 +lab112: EOR.W D4,D0 SWAP D0 -lbC000116 - MOVE.L A0,D4 +lab116: MOVE.L A0,D4 MOVEM.L (SP)+,A0/A1 RTS