Changes between Version 1 and Version 2 of ArmPortingNotes


Ignore:
Timestamp:
Apr 3, 2008, 8:39:09 AM (11 years ago)
Author:
gb
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ArmPortingNotes

    v1 v2  
    1010
    1111ARM 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.
    1313
    1414== Alignment ==
     
    7070@back
    7171    (sub fn pc whatever) ; FN = pc - offset of this instruction
    72 }}]
     72}}}
    7373
    7474=== Call without "fn" register example ===
     
    114114  (add pc nil disp) ; assuming that "disp" is an appropriate ARM constant.
    115115@back
    116 }}
     116}}}
    117117
    118118or
     
    147147Exception 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.
    148148
    149 
    150 I