Backup/restore the xmm6-xmm15 SSE registers within asm functions on win64 Reviewed by zhiliang
Showing the changes to codec/encoder/plus/src/welsEncoderExt.cpp (1 of 24 files). Show all
Unified · Split
| @@ -138,7 +138,6 @@ CWelsH264SVCEncoder::CWelsH264SVCEncoder() · 137 unmodified lines | |||
| 138 | #endif//OUTPUT_BIT_STREAM | 138 | #endif//OUTPUT_BIT_STREAM |
| 139 | 139 | ||
| 140 | InitEncoder(); | 140 | InitEncoder(); |
| 141 | XMMREG_PROTECT_INIT(CWelsH264SVCEncoder); | ||
| 142 | } | 141 | } |
| 143 | 142 | ||
| 144 | CWelsH264SVCEncoder::~CWelsH264SVCEncoder() { | 143 | CWelsH264SVCEncoder::~CWelsH264SVCEncoder() { |
| @@ -172,7 +171,6 @@ CWelsH264SVCEncoder::~CWelsH264SVCEncoder() { · 27 unmodified lines | |||
| 172 | #endif//OUTPUT_BIT_STREAM | 171 | #endif//OUTPUT_BIT_STREAM |
| 173 | 172 | ||
| 174 | Uninitialize(); | 173 | Uninitialize(); |
| 175 | XMMREG_PROTECT_UNINIT(CWelsH264SVCEncoder); | ||
| 176 | } | 174 | } |
| 177 | 175 | ||
| 178 | void CWelsH264SVCEncoder::InitEncoder (void) { | 176 | void CWelsH264SVCEncoder::InitEncoder (void) { |
| @@ -551,9 +549,7 @@ int CWelsH264SVCEncoder::EncodeFrameInternal(const SSourcePicture* pSrcPic, SFr · 372 unmodified lines | |||
| 551 | 549 | ||
| 552 | int32_t iFrameTypeReturned = 0; | 550 | int32_t iFrameTypeReturned = 0; |
| 553 | int32_t iFrameType = videoFrameTypeInvalid; | 551 | int32_t iFrameType = videoFrameTypeInvalid; |
| 554 | XMMREG_PROTECT_STORE(CWelsH264SVCEncoder); | ||
| 555 | const int32_t kiEncoderReturn = WelsEncoderEncodeExt (m_pEncContext, pBsInfo, pSrcPic); | 552 | const int32_t kiEncoderReturn = WelsEncoderEncodeExt (m_pEncContext, pBsInfo, pSrcPic); |
| 556 | XMMREG_PROTECT_LOAD(CWelsH264SVCEncoder); | ||
| 557 | 553 | ||
| 558 | if(kiEncoderReturn == ENC_RETURN_MEMALLOCERR) { | 554 | if(kiEncoderReturn == ENC_RETURN_MEMALLOCERR) { |
| 559 | WelsUninitEncoderExt (&m_pEncContext); | 555 | WelsUninitEncoderExt (&m_pEncContext); |