【问题标题】:Alignment of functions功能对齐
【发布时间】:2011-12-05 08:14:14
【问题描述】:

如何使函数在 GCC 的 4 字节边界处对齐,目标为 680x0?

-malign-functions=4 本身似乎并不能解决问题。某种选项可能旨在提高 68020 及更高版本的缓存性能?

【问题讨论】:

    标签: c compiler-construction assembly 68000


    【解决方案1】:

    -malign-functions=4 应该可以解决问题,但它可以被 function attribute aligned() 覆盖。确保您的代码不使用它(例如使用宏)。

    【讨论】:

    • 我认为如果它有效的话,可以为 AROS 贡献一些东西。 :-) 无论如何,看不到对齐的属性,此外我认为 GCC 的版本不支持该属性。 (太老了。)您认为可能是链接器导致代码错位吗?
    • 我已经有一段时间没有查看 AROS 源代码了 :-( 那是 PIC 代码吗?否则,链接器不太可能干扰。尝试“gcc -s”获取程序集输出并查看对于.align 元操作。
    • 不知道它实际上是什么,但是关于 PIC 的好点与否,是有道理的。感谢您的 gcc -s 提示,我回家后会尝试。感谢您创建 AROS,这件事终于实现了我在 1997 年梦想的方式,Amiga 硬件和软件克隆以及 AROS 在 m68k 上运行。 :-)
    【解决方案2】:

    试试这个:

    (引自linux.die

    -m4byte-functions

    F-mno-4byte-functions

    强制所有函数对齐到四字节边界。

    【讨论】:

    • -mNO-4byte-functions - 有趣的名字选择!
    • 哈哈,以后试试这个。 :-)
    • 嗯,虽然是一个有趣的答案,但它与 68000 系列处理器无关。引自维基百科“M·CORE 指令集与 68K 指令集非常不同”en.wikipedia.org/wiki/…
    猜你喜欢
    • 2012-06-10
    • 2017-04-23
    • 2021-04-08
    • 1970-01-01
    • 2017-03-24
    • 2014-02-12
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    相关资源
    最近更新 更多