powerpc-eabivle-gcc不支持e_and2i指令

问题描述 投票:0回答:1

我想禁用e200z7的MSR寄存器的第16位。这是我正在使用的:

/* Disable MSR[EE] bit*/
        mfmsr   r6
        e_and2i r6,0x7fff
        mtmsr   r6

当我使用powerpc_eabivle_4_9 / bin / powerpc-eabivle-gcc编译.S文件时,出现以下错误:

Error: unrecognized opcode: `e_and2i'

如何不使用and指令将其设置为0?

assembly powerpc
1个回答
0
投票
unsigned foo(unsigned x) { return x &= ~(1UL << 16); }

compiles on Godbolt to

foo(unsigned int):
        rlwinm 3,3,0,16,14
        blr

我认为rlwinm在每台PowerPC上都可用,或者至少不是特别新颖或稀有。

© www.soinside.com 2019 - 2024. All rights reserved.