# CEMU detailed changelog for 1.4.1# Patreon release date: 2016-04-07CPU: Added new instructions to recompiler: LWARX, STWCX, STWBRX, LHAUX, LHZUX, type 5, 6 & 7 for PSQ_L and type 5, 6 & 7 for PSQ_ST, DCBZ, ADDC, MFCR, FDIV, FADD, PS_SUB, PS_NEG.CPU: Improved handling of XMM registers in recompiler. Drastically reducing the number of load/store operations when not enough registers are available.CPU: Added SUBFME to interpreter.coreinit: New API __ghs_mtx_init(), __ghs_mtx_dst(), __ghs_mtx_lock(), __ghs_mtx_unlock(), OSSleepThread()coreinit: Added weak-symbol 'environ'RPL: Added support for SDA and SDA2fsa: Asynchronous file operations now support sending the result via message queue (instead of callback)GX2: Added vertex data cache (cache vertex data in GPU memory instead of re-uploading it for every drawcall)GX2: Fixed texture decoding for compressed textures with a size smaller than 16x16GX2: Fixed AMD issue that occurred when glDrawBuffers() enables unused color attachmentGX2: Fixed AMD issue that occurred when glPrimitiveRestartIndexNV is used instead of glPrimitiveRestartIndexGX2: Fixed AMD driver crash that could happen after shader compilation.GX2: Fixed a multitude of issues when using Intel GPUs. Graphics are still horribly broken due to Intel's lacking OpenGL driver, but at least we can say we tried our bestGX2: Invalidate destination texture in cache after GX2SurfaceCopy()vpad: Clamp left and right stick to length 1.0