diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/AtomBios/CD_Operations.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/AtomBios/CD_Operations.c b/src/AtomBios/CD_Operations.c index 58c4ae9c..ff517465 100644 --- a/src/AtomBios/CD_Operations.c +++ b/src/AtomBios/CD_Operations.c @@ -618,7 +618,13 @@ VOID ProcessCompare(PARSER_TEMP_DATA STACK_BASED * pParserTempData) VOID ProcessClear(PARSER_TEMP_DATA STACK_BASED * pParserTempData) { pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData); - pParserTempData->DestData32 &= ~(AlignmentMask[pParserTempData->CD_Mask.SrcAlignment] << SourceAlignmentShift[pParserTempData->CD_Mask.SrcAlignment]); + + if (pParserTempData->ParametersType.Destination == 0 && + pParserTempData->Multipurpose.CurrentPort == ATI_RegsPort && + pParserTempData->Index == 0) { + pParserTempData->DestData32 &= 0xffffffff; + } else + pParserTempData->DestData32 &= ~(AlignmentMask[pParserTempData->CD_Mask.SrcAlignment] << SourceAlignmentShift[pParserTempData->CD_Mask.SrcAlignment]); PutDataFunctions[pParserTempData->ParametersType.Destination](pParserTempData); } |