Changes between Version 1 and Version 2 of ArmPortingNotes
- Timestamp:
- 04/03/08 03:39:09 (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ArmPortingNotes
v1 v2 10 10 11 11 ARM instructions are generally 32 bits wide; many ARM variants offer an alternate 16-bit instruction set ("THUMB") that offers improved code density, generally at the cost of dropping some ARM features (conditional execution, pre-shifted operands) and making it a bit awkward to access all 16 GPRs. 12 (There's also something in newer ARMs which allows a mixture of 32/16 bit THUMB instructions.) We might be able to use THUMB-encoding in some very specialized cases, but it's not clear how attractive this is. )12 (There's also something in newer ARMs which allows a mixture of 32/16 bit THUMB instructions.) We might be able to use THUMB-encoding in some very specialized cases, but it's not clear how attractive this is. 13 13 14 14 == Alignment == … … 70 70 @back 71 71 (sub fn pc whatever) ; FN = pc - offset of this instruction 72 }} ]72 }}} 73 73 74 74 === Call without "fn" register example === … … 114 114 (add pc nil disp) ; assuming that "disp" is an appropriate ARM constant. 115 115 @back 116 }} 116 }}} 117 117 118 118 or … … 147 147 Exception handling seems to work (at least under Linux.) The iPhone SDK headers show that the Apple ARM-based systems are Mach-based, and I assume that that means that exception handling needs to be done at the Mach level on those systems. 148 148 149 150 I
