亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? csl_dat_.sa

?? Ti C6416 環境下
?? SA
?? 第 1 頁 / 共 3 頁
字號:
               SHL   serialNumber,16,id
               OR    id,slotNumber,id

               ;Load up base address of DMA registers
               LDW   *stateAddr(State.baseAddr),qdmaBase

               ;Store source address
               STW   value,*qdmaBase[SRC]

               ;Store destination address
               STW   dst,*qdmaBase[DST]

               ;store index
;              MVKL  0x00000000,Y
;              MVKH  0x00000000,Y
               ZERO  Y
               STW   Y,*qdmaBase[IDX]

               ;Calculate argument alignment
               OR    dst,byteCnt,alignment
               OR    value,alignment,alignment
               AND   alignment,3,alignment

DAT_FILL_32:
               ;Check to see if 32-bit aligned, branch if not
               CMPEQ alignment,0,pred
       [!pred] B     DAT_FILL_16

               ;Store transfer count
               SHRU  byteCnt,2,X
               STW   X,*qdmaBase[CNT]

               ;Store option register into pseudo space to kick off transfer
               MVKL  0x00200000,Y
               MVKH  0x00200000,Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

               ;All done so go to procedure exit code
               B     DAT_FILL_RETURN

DAT_FILL_16:
               ;Check to see if 16-bit aligned, branch if not
               CMPEQ alignment,2,pred
       [!pred] B     DAT_FILL_8

               ;Store transfer count
               SHRU  byteCnt,1,X
               STW   X,*qdmaBase[CNT]

               ;Store option register into pseudo space to kick off transfer
               MVKL  0x08200000,Y
               MVKH  0x08200000,Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

               ;All done so go to procedure exit code
               B     DAT_FILL_RETURN

DAT_FILL_8:
               ;Must be 8-bit aligned since it wasn't 32 or 16 bit aligned

               ;Store transfer count
               STW   byteCnt,*qdmaBase[CNT]

               ;Store option register into pseudo space to kick off transfer
               MVKL  0x10200000,Y
               MVKH  0x10200000,Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

DAT_FILL_RETURN:
               ;Restore GIE
               MVC   CSR,X
               OR    X,gieSave,X
               MVC   X,CSR

               .return id
               .endproc

*------------------------------------------------------------------------------*
* Uint32 DAT_copy(void *src , void *dst , Uint16 byteCnt);
*------------------------------------------------------------------------------*
_DAT_copy .cproc src, dst, byteCnt

               .reg gieSave
               .reg X,Y
               .reg const31
               .reg stateAddr
               .reg useMask
               .reg slotNumber
               .reg serialNumber
               .reg tableAddr
               .reg oldSerialNumber
               .reg pred
               .reg mask
               .reg cipr
               .reg id
               .reg alignment
               .reg qdmaBase
               .reg initOpt
               .reg ciprAddr

               ;Load useMask and Initial primary control register
               MVKL  __DAT_stateStruct,stateAddr
               MVKH  __DAT_stateStruct,stateAddr
               LDW   *stateAddr(State.useMask),useMask
               LDW   *stateAddr(State.initOpt),initOpt

               ;Constant needed later
               MVK   31,const31

               MVKL  0x01A0FFE4,ciprAddr
               MVKH  0x01A0FFE4,ciprAddr
;               MVK   1, pred
;DAT_COPY_LOOP1:
;               ;Wait for a free slot to open up
;       [pred]  LDW   *ciprAddr,cipr
;               AND   cipr,useMask,X
;               LMBD  1,X,X
;               SUB   const31,X,slotNumber
;               CMPEQ slotNumber,-1,pred
;       [pred]  B     DAT_COPY_LOOP1

               ZERO  pred
DAT_COPY_LOOP1:
               ;Wait for a free slot to open up
       [!pred] LDW   *ciprAddr,cipr
               AND   cipr,useMask,pred
       [!pred] B     DAT_COPY_LOOP1

               LMBD  1,pred,X
               SUB   const31,X,slotNumber

               ;Save and clear GIE
               MVC   CSR,X
               AND   X,1,gieSave
               AND   X,-2,X
               MVC   X,CSR

               ;Generate mask from slot number
               MVK   1,mask
               SHL   mask,slotNumber,mask

               ;Clear interrupt pending flag
               STW   mask,*ciprAddr

               ;Load up serial number table address
               MVKL  __DAT_serialTable,tableAddr
               MVKH  __DAT_serialTable,tableAddr
               LDHU  *tableAddr[slotNumber],oldSerialNumber

               ;Add one to serial numer and store it back into the table
               ADD   oldSerialNumber,1,serialNumber
               STH   serialNumber,*tableAddr[slotNumber]

               ;Construct transfer id from serial number and slot number
               SHL   serialNumber,16,id
               OR    id,slotNumber,id

               ;Load up base address of DMA registers
               LDW   *stateAddr(State.baseAddr),qdmaBase

               ;Store source address
               STW   src,*qdmaBase[SRC]

               ;Store destination address
               STW   dst,*qdmaBase[DST]

               ;store index
               MVKL  0x00000000,Y
               MVKH  0x00000000,Y
               STW   Y,*qdmaBase[IDX]

               ;Calculate argument alignment
               OR    dst,byteCnt,alignment
               OR    src,alignment,alignment
               AND   alignment,3,alignment

DAT_COPY_32:
               ;Check to see if 32-bit aligned, branch if not
               CMPEQ alignment,0,pred
       [!pred] B     DAT_COPY_16

               ;Store transfer count
               SHRU  byteCnt,2,X
               STW   X,*qdmaBase[CNT]

               ;Store option register into pseudo space to kick off transfer
               MVKL  0x01200000,Y
               MVKH  0x01200000,Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

               ;All done so go to procedure exit code
               B     DAT_COPY_RETURN

DAT_COPY_16:
               ;Check to see if 16-bit aligned, branch if not
               CMPEQ alignment,2,pred
       [!pred] B     DAT_COPY_8

               ;Store transfer count
               SHRU  byteCnt,1,X
               STW   X,*qdmaBase[CNT]

               ;Store option register into pseudo space to kick off transfer
               MVKL  0x09200000,Y
               MVKH  0x09200000,Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

               ;All done so go to procedure exit code
               B     DAT_COPY_RETURN

DAT_COPY_8:
               ;Must be 8-bit aligned since it wasn't 32 or 16 bit aligned

               ;Store transfer count
               STW   byteCnt,*qdmaBase[CNT]

               ;Store option register into pseudo space to kick off transfer
               MVKL  0x11200000,Y
               MVKH  0x11200000,Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

DAT_COPY_RETURN:
               ;Restore GIE
               MVC   CSR,X
               OR    X,gieSave,X
               MVC   X,CSR

               .return id
               .endproc

*------------------------------------------------------------------------------*
* Uint32 DAT_copy2d(Uint32 type, void *src, void *dst, Uint16 lineLen, 
*   Uint16 lineCnt, Uint16 linePitch);
*------------------------------------------------------------------------------*
_DAT_copy2d .cproc type, src, dst, lineLen, lineCnt, linePitch

               .reg gieSave
               .reg X,Y
               .reg const31
               .reg stateAddr
               .reg useMask
               .reg slotNumber
               .reg serialNumber
               .reg tableAddr
               .reg oldSerialNumber
               .reg pred
               .reg mask
               .reg cipr
               .reg id
               .reg alignment
               .reg qdmaBase
               .reg initOpt
               .reg ciprAddr

               ;Load useMask and Initial primary control register
               MVKL  __DAT_stateStruct,stateAddr
               MVKH  __DAT_stateStruct,stateAddr
               LDW   *stateAddr(State.useMask),useMask
               LDW   *stateAddr(State.initOpt),initOpt

               ;Constant needed later
               MVK   31,const31

               ;address of the channel interrupt pending register
               MVKL  0x01A0FFE4,ciprAddr
               MVKH  0x01A0FFE4,ciprAddr

;               MVK   1,pred
;DAT_COPY2D_LOOP1:
;               ;Wait for a free slot to open up
;        [pred] LDW   *ciprAddr,cipr
;               AND   cipr,useMask,X
;               LMBD  1,X,X
;               SUB   const31,X,slotNumber
;               CMPEQ slotNumber,-1,pred
;        [pred] B     DAT_COPY2D_LOOP1

               ZERO  pred
DAT_COPY2D_LOOP1:
               ;Wait for a free slot to open up
       [!pred] LDW   *ciprAddr,cipr
               AND   cipr,useMask,pred
       [!pred] B     DAT_COPY2D_LOOP1

               LMBD  1,pred,X
               SUB   const31,X,slotNumber

               ;Save and clear GIE
               MVC   CSR,X
               AND   X,1,gieSave
               AND   X,-2,X
               MVC   X,CSR

               ;Generate mask from slot number
               MVK   1,mask
               SHL   mask,slotNumber,mask

               ;Clear interrupt pending flag
               STW   mask,*ciprAddr

               ;Load up serial number table address
               MVKL  __DAT_serialTable,tableAddr
               MVKH  __DAT_serialTable,tableAddr
               LDHU  *tableAddr[slotNumber],oldSerialNumber

               ;Add one to serial numer and store it back into the table
               ADD   oldSerialNumber,1,serialNumber
               STH   serialNumber,*tableAddr[slotNumber]

               ;Construct transfer id from serial number and slot number
               SHL   serialNumber,16,id
               OR    id,slotNumber,id

               ;Load up base address of DMA registers
               LDW   *stateAddr(State.baseAddr),qdmaBase

               ;Store source address
               STW   src,*qdmaBase[SRC]

               ;Store destination address
               STW   dst,*qdmaBase[DST]

               ;Calculate argument alignment
               OR    dst,lineLen,alignment
               OR    src,alignment,alignment
               OR    linePitch,alignment,alignment
               AND   alignment,3,alignment

DAT_COPY2D_32:
               ;Check to see if 32-bit aligned, branch if not
               CMPEQ alignment,0,pred
       [!pred] B     DAT_COPY2D_16

               ;Store transfer count
               SHRU  lineLen,2,X
               SUB   lineCnt,1,Y
               SHL   Y,16,Y
               OR    X,Y,X
               STW   X,*qdmaBase[CNT]

               ;Store index register 
               SUB   linePitch,lineLen,X
               SHL   X,16,X
               STW   X,*qdmaBase[IDX]

               ;Store option register into pseudo space to kick off transfer
;              MVKL  0x00000000,Y
;              MVKH  0x00000000,Y
               ZERO  Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    type,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

               ;All done so go to procedure exit code
               B     DAT_COPY2D_RETURN

DAT_COPY2D_16:
               ;Check to see if 16-bit aligned, branch if not
               CMPEQ alignment,2,pred
       [!pred] B     DAT_COPY2D_8

               ;Store transfer count
               SHRU  lineLen,1,X
               SUB   lineCnt,1,Y
               SHL   Y,16,Y
               OR    X,Y,X
               STW   X,*qdmaBase[CNT]

               ;Store index register 
               SUB   linePitch,lineLen,X
               SHL   X,16,X
               STW   X,*qdmaBase[IDX]

               ;Store option register into pseudo space to kick off transfer
               MVKL  0x08000000,Y
               MVKH  0x08000000,Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    type,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

               ;All done so go to procedure exit code
               B     DAT_COPY2D_RETURN

DAT_COPY2D_8:
               ;Must be 8-bit aligned since it wasn't 32 or 16 bit aligned

               ;Store transfer count
               SHRU  lineLen,0,X
               SUB   lineCnt,1,Y
               SHL   Y,16,Y
               OR    X,Y,X
               STW   X,*qdmaBase[CNT]

               ;Store index register 
               SUB   linePitch,lineLen,X
               SHL   X,16,X
               STW   X,*qdmaBase[IDX]

               ;Store option register into pseudo space to kick off transfer
               MVKL  0x10000000,Y
               MVKH  0x10000000,Y
               SHL   slotNumber,16,X
               OR    X,Y,Y
               OR    type,Y,Y
               OR    Y,initOpt,Y
               STW   Y,*qdmaBase[OPT]

DAT_COPY2D_RETURN:
               ;Restore GIE
               MVC   CSR,X
               OR    X,gieSave,X
               MVC   X,CSR

               .return id
               .endproc

*------------------------------------------------------------------------------*
 .endif ;EDMA_SUPPORT
 
 .endif ;DAT_SUPPORT

********************************************************************************
* End of csl_dat_.sa
********************************************************************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
1区2区3区精品视频| 日韩精品一级中文字幕精品视频免费观看 | 久久69国产一区二区蜜臀| 国产精品国产三级国产aⅴ无密码| 欧美日韩国产在线观看| fc2成人免费人成在线观看播放| 日韩国产在线一| **欧美大码日韩| 欧美精品一区二区三区高清aⅴ| 欧美无砖砖区免费| 波多野结衣亚洲| 国产麻豆91精品| 蜜臀av在线播放一区二区三区| 亚洲男人的天堂在线aⅴ视频| 久久久噜噜噜久久人人看 | 丁香六月久久综合狠狠色| 丝瓜av网站精品一区二区| 亚洲精选免费视频| 亚洲三级在线看| 亚洲国产精华液网站w| 精品国产一区二区亚洲人成毛片| 日本韩国视频一区二区| 成人美女视频在线观看18| 国产一区二区在线视频| 免费精品视频最新在线| 亚洲成人精品一区| 亚洲电影在线免费观看| 亚洲精品视频免费观看| 亚洲色图欧洲色图| 国产精品乱码一区二三区小蝌蚪| 久久先锋资源网| 亚洲精品一区二区三区蜜桃下载 | 亚洲一二三区在线观看| 最新热久久免费视频| 欧美激情中文不卡| 日本一区二区免费在线观看视频 | 久久综合久久99| 精品精品欲导航| 日韩网站在线看片你懂的| 欧美一级理论片| 欧美一区二区视频网站| 日韩欧美色电影| 日韩免费高清av| 日韩精品一区二区三区老鸭窝 | 欧美日韩夫妻久久| 欧美狂野另类xxxxoooo| 91精品国产综合久久婷婷香蕉| 欧美剧情片在线观看| 欧美一区永久视频免费观看| 日韩一区二区精品在线观看| 日韩免费电影网站| 久久久欧美精品sm网站| 国产精品视频第一区| 亚洲女与黑人做爰| 亚洲电影中文字幕在线观看| 日韩精品一二三四| 国产高清不卡二三区| 成人性生交大合| 色先锋aa成人| 制服丝袜成人动漫| 亚洲国产一区二区三区青草影视 | 亚洲精品欧美二区三区中文字幕| 亚洲精品老司机| 天天色综合成人网| 久久成人综合网| 成人91在线观看| 欧美久久久久久久久久| 欧美电影免费观看高清完整版在线| 久久亚洲二区三区| 亚洲欧美日本在线| 亚洲制服丝袜在线| 韩国三级在线一区| 99视频热这里只有精品免费| 欧美日韩精品一区二区三区四区| 7777精品久久久大香线蕉| 久久精品一区蜜桃臀影院| 亚洲精品美国一| 久久电影网站中文字幕 | 色综合天天狠狠| 91精品国产综合久久香蕉的特点 | 99riav一区二区三区| 欧美吻胸吃奶大尺度电影| 欧美成人福利视频| 亚洲精品国产无天堂网2021| 奇米777欧美一区二区| 成人午夜伦理影院| 91麻豆精品国产综合久久久久久| 欧美激情自拍偷拍| 免费成人在线播放| 色婷婷久久综合| 久久综合久久99| 亚瑟在线精品视频| 成人性生交大合| 日韩欧美中文字幕制服| 一区二区三区中文字幕| 国产伦精品一区二区三区免费| 日本丶国产丶欧美色综合| 久久综合网色—综合色88| 亚洲丶国产丶欧美一区二区三区| 韩国女主播一区二区三区| 欧美视频在线观看一区二区| 欧美—级在线免费片| 蜜臂av日日欢夜夜爽一区| 在线看不卡av| 中文字幕亚洲视频| 韩国女主播成人在线| 欧美酷刑日本凌虐凌虐| 亚洲综合色区另类av| 不卡一区中文字幕| 久久嫩草精品久久久久| 天堂av在线一区| 欧美亚洲国产怡红院影院| 青青青伊人色综合久久| 91在线观看视频| 国产精品麻豆久久久| 国内精品久久久久影院一蜜桃| 欧美性猛片aaaaaaa做受| 中文字幕一区二区三区视频 | 色婷婷综合久久久中文字幕| 国产精品视频免费看| 国产成人综合在线播放| 精品区一区二区| 美国十次综合导航| 91精品国模一区二区三区| 亚洲一级片在线观看| 91麻豆精品秘密| 日韩理论片网站| 99精品欧美一区二区三区小说| 国产校园另类小说区| 国产一区二区三区在线看麻豆| 欧美一级理论片| 免费一级欧美片在线观看| 欧美一级搡bbbb搡bbbb| 天天色 色综合| 日韩欧美亚洲国产另类| 奇米精品一区二区三区在线观看一| 欧美福利一区二区| 日本成人在线看| 精品裸体舞一区二区三区| 国产原创一区二区三区| 久久久久久麻豆| 成人少妇影院yyyy| 亚洲视频在线一区观看| 91性感美女视频| 一二三区精品视频| 717成人午夜免费福利电影| 免费视频最近日韩| 亚洲精品一区二区三区99| 国产精品一二三四| 亚洲欧洲精品一区二区三区不卡 | 在线精品视频免费观看| 亚洲一区二区三区在线| 欧美精三区欧美精三区| 91伊人久久大香线蕉| 亚洲免费成人av| 精品视频在线免费| 免费久久99精品国产| 久久久九九九九| 91首页免费视频| 亚洲成a天堂v人片| 久久综合国产精品| 不卡电影免费在线播放一区| 亚洲伊人色欲综合网| 91精品国产aⅴ一区二区| 激情文学综合网| 成人免费在线视频| 在线不卡免费欧美| 国产福利精品一区| 亚洲伊人伊色伊影伊综合网| 日韩一区二区在线看片| 国产成人av电影在线播放| 亚洲综合免费观看高清完整版在线| 91麻豆精品国产91久久久| 成人影视亚洲图片在线| 亚洲福利一区二区| 国产亚洲一区二区三区四区| 色婷婷精品久久二区二区蜜臀av| 日本欧美大码aⅴ在线播放| 中文字幕精品一区二区三区精品| 欧美日韩国产一级二级| 国产精品99久久久| 午夜激情久久久| 中文字幕免费在线观看视频一区| 欧美性大战久久| 国产精品123| 日韩中文字幕区一区有砖一区| 国产偷国产偷亚洲高清人白洁| 在线视频欧美区| 国产专区欧美精品| 亚洲午夜精品在线| 国产午夜精品一区二区三区四区| 色狠狠桃花综合| 国产精品一区二区久激情瑜伽 | 日韩免费观看高清完整版| 91在线视频观看| 国产一区二区三区av电影| 亚洲国产乱码最新视频| 日本不卡在线视频| 中文字幕五月欧美| 久久蜜桃av一区二区天堂|