mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-19 20:34:38 +00:00
18 lines
900 B
Plaintext
18 lines
900 B
Plaintext
|
//===---------------------------------------------------------------------===//
|
||
|
// Random ideas for the ARM backend (Thumb specific).
|
||
|
//===---------------------------------------------------------------------===//
|
||
|
|
||
|
* Add support for compiling functions in both ARM and Thumb mode, then taking
|
||
|
the smallest.
|
||
|
* Add support for compiling individual basic blocks in thumb mode, when in a
|
||
|
larger ARM function. This can be used for presumed cold code, like paths
|
||
|
to abort (failure path of asserts), EH handling code, etc.
|
||
|
|
||
|
* Thumb doesn't have normal pre/post increment addressing modes, but you can
|
||
|
load/store 32-bit integers with pre/postinc by using load/store multiple
|
||
|
instrs with a single register.
|
||
|
|
||
|
* Make better use of high registers r8, r10, r11, r12 (ip). Some variants of add
|
||
|
and cmp instructions can use high registers. Also, we can use them as
|
||
|
temporaries to spill values into.
|