2.1.109. --split_ldm

此选项指示编译器将 LDMSTM 指令分别拆分为两个或更多的 LDMSTM 指令。

如果选择 --split_ldm,则 LDMSTM 指令的最大寄存器传送数将根据下列情况限定为相应的值:

如果所需的寄存器传送数超过上述这些限制,则应使用多个 LDMSTM 指令。

Note

此选项已被弃用,并将在下一版本中被删除。

用法

使用 --split_ldm 选项可在满足下列条件的 ARM 系统上缩短中断等待时间:

  • 没有高速缓存或写缓冲器(如没有高速缓存的 ARM7TDMI)

  • 使用零等待状态,并具有 32 位内存。

Note

使用 --split_ldm 会增加代码大小,并且会使性能略微有所降低。

限制

  • 使用 --split_ldm 时,缺省情况下将拆分内联汇编程序的 LDMSTM 指令。 但编译器以后可能会将这些单独的指令重新合并为一条 LDMSTM 指令。

  • 使用 --split_ldm 时,不会拆分 VFP FLDMFSTM 指令。

  • 有些目标硬件无法从用 --split_ldm 编译的代码中获益。 例如:

    • 对高速缓存系统或具有写缓冲器的处理器没有明显好处。

    • 对具有非零等待状态内存的系统或具有慢速外围设备的系统没有好处。 在此类系统中,中断等待时间是由速度最慢的内存或外设访问所需的周期数决定的。 这一延迟时间一般远大于由多个寄存器传送产生的延迟时间。

另请参阅

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0348AC
Non-Confidential