博文

目前显示的是 四月, 2018的博文

ARM64寄存器以及指令Note(持续更新

GPR = General Purpose Register ------------ ARM32中的LDM、STM、PUSH、POP指令,在ARM64中并不存在。取而代之的是LDP、STP指令,如一般在函数开头用来代替PUSH. ARMv8在存储器控制器上下了不少功夫,增加了x86下的类似于MOVNT这种指令,Non-temporal load/store——LDNP/STNP。这就使得像原先的Memory Barrier系操作有了用武之地了~ARMv8中除了原有的ISB(Instruction Synchronization Barrier)与DMB(Data Memory Barrier)之外,还引入了LDAR/STLR(Load-Acquire/Store-Release)指令集。这套指令具有Memory Barrier的作用。如果你在某一点需要做Memory Barrier,而此时正好想读取或写入某个数据,那么直接用LDAR/STLR即可,可以省去一条DMB的指令。而在多核多线程同步中,又引入了LDXP/STXP操作,由原先的单寄存器扩展到了双寄存器

iOS中使用xpc/xpc.h

sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/xpc /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/xpc sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/launch.h /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/launch.h #中间的MacOSX的版本号可能会有所不同。#