Commit 43b69cf4 authored by Jeffrey Lee's avatar Jeffrey Lee
Browse files

Fix objasm 4 warnings. Enable use of CLZ in math code.

Detail:
  s/Array, s/Funct, s/Stmt - Use LDR/STR instead of LDM/STM when only one register is to be transferred
  s/fp - Use Hdr:CPU.Arch to determine whether CLZ can be used in the IFLT routine
Admin:
  Tested on rev A2 BB-xM


Version 1.45. Tagged as 'BASIC-1_45'
parent 6ccd786f
......@@ -11,13 +11,13 @@
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "1.44"
Module_Version SETA 144
Module_MajorVersion SETS "1.45"
Module_Version SETA 145
Module_MinorVersion SETS ""
Module_Date SETS "16 Jun 2009"
Module_ApplicationDate SETS "16-Jun-09"
Module_Date SETS "24 Sep 2011"
Module_ApplicationDate SETS "24-Sep-11"
Module_ComponentName SETS "BASIC"
Module_ComponentPath SETS "castle/RiscOS/Sources/Programmer/BASIC"
Module_FullVersion SETS "1.44"
Module_HelpVersion SETS "1.44 (16 Jun 2009)"
Module_FullVersion SETS "1.45"
Module_HelpVersion SETS "1.45 (24 Sep 2011)"
END
/* (1.44)
/* (1.45)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 1.44
#define Module_MajorVersion_CMHG 1.45
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 16 Jun 2009
#define Module_Date_CMHG 24 Sep 2011
#define Module_MajorVersion "1.44"
#define Module_Version 144
#define Module_MajorVersion "1.45"
#define Module_Version 145
#define Module_MinorVersion ""
#define Module_Date "16 Jun 2009"
#define Module_Date "24 Sep 2011"
#define Module_ApplicationDate "16-Jun-09"
#define Module_ApplicationDate "24-Sep-11"
#define Module_ComponentName "BASIC"
#define Module_ComponentPath "castle/RiscOS/Sources/Programmer/BASIC"
#define Module_FullVersion "1.44"
#define Module_HelpVersion "1.44 (16 Jun 2009)"
#define Module_LibraryVersionInfo "1:44"
#define Module_FullVersion "1.45"
#define Module_HelpVersion "1.45 (24 Sep 2011)"
#define Module_LibraryVersionInfo "1:45"
......@@ -72,8 +72,8 @@ ARRAYARRAYASSIGNCOPY
BHI ARRAYARRAYASSIGNCOPY
BEQ NXT
CMN AELINE,#8
LDMLOIA R6!,{R0}
STMLOIA R4!,{R0}
LDRLO R0,[R6],#4
STRLO R0,[R4],#4
LDMEQIA R6!,{R0,R1}
STMEQIA R4!,{R0,R1}
LDMHIIA R6!,{R0,R2,R3}
......@@ -953,7 +953,7 @@ MATRIXMULTIPLYMAIN
MOV R6,R6,LSL #2 ;LIMK=LIMK*4
;main loop over i
MATRIXMULTIPLYINT1
LDMFD SP,{R0} ;reload r source base
LDR R0,[SP],#4 ;reload r source base
MOV R11,R6 ;loop count: LIMK*4
;outer loop over k
MATRIXMULTIPLYINT2
......
......@@ -269,12 +269,12 @@ FNPAR9 LDMEA R6!,{R4,R5}
FNPARX STMFD SP!,{LINE,R10}
MOV LINE,R7
BL MUNGLE
ADD R2,R2,#3
BIC R2,R2,#3
STMEA R2!,{R4,LINE} ;put in final zero and address
LDMFD SP!,{LINE,R10}
LDR R4,[SP],#4
STMEA R2!,{R4} ;put in overlay value
ADD R2,R2,#3
BIC R2,R2,#3
STR R4,[R2],#4 ;put in overlay value
STR R2,[ARGP,#FSA] ;update fsa!
B FNGOA
......@@ -608,11 +608,11 @@ GTARGRETRESTRV
CMP R5,#TFPLV
BEQ GTARGRETRESTRVFP
BCS GTARGRETRESTRVSTR
LDMFD AELINE!,{IACC}
LDR IACC,[AELINE],#4
MOV TYPE,#TINTEGER
B GTARGRETRESTRV1
GTARGRETRESTRVSTR
LDMFD AELINE!,{CLEN}
LDR CLEN,[AELINE],#4
ADD R0,ARGP,#STRACC
SUBS R1,CLEN,R0
BEQ GTARGRETRESTRVSTR2
......@@ -701,7 +701,7 @@ RETSTR CMP R7,#128
BNE RETROP
STMFD SP!,{R0-R5,R14}
ADD R3,SP,#7*4 ;number of registers pushed
LDMFD R3!,{CLEN}
LDR CLEN,[R3],#4
ADD R4,ARGP,#STRACC
SUB CLEN,CLEN,R4
ADD CLEN,CLEN,R3
......
......@@ -341,7 +341,7 @@ INITIALISERAM1
BHI INITIALISERAM1
MOVEQ PC,R14
CMN R5,#8
STMLOIA R4!,{R0}
STRLO R0,[R4],#4
STMEQIA R4!,{R0,R1}
STMHIIA R4!,{R0,R2,R3}
MOV PC,R14
......
......@@ -14,6 +14,10 @@
;
;> fp
GBLL UseCLZ
UseCLZ SETL :LNOT: (NoARMv5 :LOR: NoARMT)
FLOATY TEQ TYPE,#0
FLOATZ MOVMI PC,R14
FLOATQ BEQ ERTYPEINT
......@@ -25,6 +29,11 @@ IFLT
BEQ IFLTZ ;exit if number 0
AND FSIGN,FSIGN,#&80000000
RSBMI FACC,FACC,#0 ;complement number if rqd
[ UseCLZ
CLZ FACCX,FACC
MOV FACC,FACC,LSL FACCX
RSB FACCX,FACCX,#&A0
|
MOV FACCX,#&A0 ;initial exponent
IFLTA CMP FACC,#&10000
MOVCC FACC,FACC,LSL #16
......@@ -41,6 +50,7 @@ IFLTA CMP FACC,#&10000
CMP FACC,#&80000000
MOVCC FACC,FACC,LSL #1
SUBCC FACCX,FACCX,#1
]
MOV PC,R14
IFLTZ MOV FACCX,#0
|
......@@ -450,7 +460,15 @@ FNRMA SUB FACCX,FACCX,#1
FNRMB MOVS FACC,FGRD ;if facc zero then facc:=fgrd
BEQ FCLR
SUBS FACCX,FACCX,#32 ;exponent dec by word
[ UseCLZ
BMI FCLR
CLZ FGRD,FACC
MOV FACC,FACC,LSL FGRD
SUB FACCX,FACCX,FGRD
MOV PC,LR
|
BPL IFLTA
]
;clear facc
FCLR MOV FACCX,#0
MOV FACC,#0
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment