下面是汇编代码:
MOV.W R11, R3,LSL#1 //R3是一个unsigned int的入参
MOVS R0, #0x44 ; 'D'
UMULL.W R0, R1, R11, R0
MOVS R2, #0
CMP R1, #0
IT NE
MOVNE R1, #1
CMP R1, #0
IT NE
MOVNE.W R0, #0xFFFFFFFF
MOVS R1, #0
BLX j__Znajii ; operator new[](uint,int,int)
这段汇编对于R0来说是怎样的生成逻辑?
我知道先进行64位的乘法,然后判断结果的高32位是否为0,关键还判断了两次,这点令我疑惑。