diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2010-01-19 11:59:38 -0500 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2010-01-19 12:05:42 -0500 |
commit | bd011784c0609f1fd03dcb784744c8f5cdef33da (patch) | |
tree | d1abe7cdb41d2bd39c8c9edf3d9c00e21d73a911 /src/AtomBios/CD_Operations.c | |
parent | 95d63e408cc88b6934bec84a0b1ef94dfe8bee7b (diff) |
ATOM: Upstream parser updates
Diffstat (limited to 'src/AtomBios/CD_Operations.c')
-rw-r--r-- | src/AtomBios/CD_Operations.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/AtomBios/CD_Operations.c b/src/AtomBios/CD_Operations.c index 6b285604..c1279b8e 100644 --- a/src/AtomBios/CD_Operations.c +++ b/src/AtomBios/CD_Operations.c @@ -300,6 +300,9 @@ VOID PutDataWS(PARSER_TEMP_DATA STACK_BASED * pParserTempData) case WS_ATTRIBUTES_C: pParserTempData->AttributesData=(UINT16)pParserTempData->DestData32; break; + case WS_REGPTR_C: + pParserTempData->CurrentRegBlock=(UINT16)pParserTempData->DestData32; + break; } } @@ -390,6 +393,8 @@ UINT32 GetParametersWS(PARSER_TEMP_DATA STACK_BASED * pParserTempData) return pParserTempData->CurrentFB_Window; case WS_ATTRIBUTES_C: return pParserTempData->AttributesData; + case WS_REGPTR_C: + return (UINT32)pParserTempData->CurrentRegBlock; } return 0; @@ -502,7 +507,7 @@ VOID ProcessMask(PARSER_TEMP_DATA STACK_BASED * pParserTempData) pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData); pParserTempData->SourceData32=GetParametersDirect(pParserTempData); - pParserTempData->Index=GetParametersDirect(pParserTempData); + pParserTempData->Index=GetSource[pParserTempData->ParametersType.Source](pParserTempData); pParserTempData->SourceData32 <<= DestinationAlignmentShift[pParserTempData->CD_Mask.DestAlignment]; pParserTempData->SourceData32 |= ~(AlignmentMask[pParserTempData->CD_Mask.SrcAlignment] << DestinationAlignmentShift[pParserTempData->CD_Mask.DestAlignment]); pParserTempData->DestData32 &= pParserTempData->SourceData32; |