MPW 3.2 Assembler Release Notes
MPW 3.2 Assembler Release Notes
Macintosh · PDF
| Filename | MPW_3.2_Assembler_Release_Notes_199104.pdf |
|---|---|
| Size | 0.39 MB |
| Subsection | developer / MPW / MPW_3.2 |
| Downloads | 0 |
Contents
030-3626-A
MPW 3.2 Assembler
Release Notes
The following features have been added to the Assembler for version 3.2.
• New optimizations.
• Longer identifiers.
• New parameter and syntax for module directives.
• MC68040 support.
• "32-Bit Everything" support.
• Improved SADE support.
• A new macro function : &SYSINMOD
New Optimizations
The 3.2 Assembler supports optimization of instructions which were previously not optimized. The following additional optimizations are available:
ADD
ADDA
ADDI
#<Data>,An
#<Data>,An
#<Data>,An
[-8 <= data <= -1)
[-8 <= data <= -1]
[-8 <= data <= -1)
=====>
=====>
=====>
SUBQ
SUBQ
SUBQ
#-<Data>,An
#-<Data>,An
#-<Data>,An
SUB
SUBA
SUBI
#<Data>,An
#<Data>,An
#<Data>,An
[-8 <= data <= -1]
[-8 <= data <= -1]
[-8 <= data <= -1]
=====>
=====>
=====>
ADDQ
ADDQ
ADDQ
#-<Data>,An
#-<Data>,An
#-<Data>,An
The above optimizations only occur when the Assembler understands the operand to be a
negative number. Since the Assembler operates on 32-bit arithmetic, the value of the
operand must be written as a negative number in order to activate the optimization. Tiris is
necessary regardless of the size (B, W, L) of the instruction. Thus, in a byte operation,
the operand must specify "-1" instead of "$FF". even though, un-optimized, they would
both compile to the same instruction.
MPW 3.2 Assembler
Release Notes
1
Copyright Apple Computer, Inc.
1990-1991. All rights reserved.
ADDI #<Data>,<EA3>
SUBI #<Data>,<EA3>
ADD.I #<data>,An
=====>
=====>
[+l <= data <= +8]
[-32767 <= data <= +32767]
=====>
[+l <= data <= +8]
ADDQ
SUBQ
#<Data>,<EA3>
#<Data>,<EA3>
LEA
<Data>(An),An
Longer Identifiers
The Assembler now suppons identifiers of lengths up to 251 characters (this was done
primarily to support C++ name mangling). On detecting a name that exceeds this maximum, the Assembler issues the warning:
ID longer than maximum length ... truncating to maximum length.
New Parameter and Syntax for Module Directives
A new parameter, ForceActi ve, exists for the ccxie module and data mcxiule directives. A
new syntax has been provided and error checking for conflicting parameters is in effect.
ForceActive
ForceActive causes a ccxie or data module to be included in the final linked output even
if the Linker would otherwise strip that code or data module because there were no references to it.
Syntax
For code module directives:
Line ::= [label] CodeDir [KeywordList]
CodeDir ::= PROC I FUNC I MAIN
KeywordList ::=Keyword I KeywordList, Keyword
Keyword::= ENTRY I EXPORT I FORCEACTIVE
For data module directives:
Line ::= [label] RECORD [KeywordList]
KeywordList
Keyword I KeywordList, Keyword
MPW 3.2 Assembler
Release Notes
2
Copyright Apple Computer, Inc.
1990-1991. All rights reserved.
Keyword::= ENTRY I EXPORT I INCR[EMENT]
MAIN I FORCEACTIVE
I DECR[EMENT]
+ Note: The MPW 3.0 Assembler Manual describes MAIN as a parameter for the
RECORD directive, but appears to have inadvertently omitted MAIN from the syntax.
6
Import…
Showing first 3,000 characters of 11,709 total. Open the full document →