Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Save scoreboard data before content switching
  3.  * Copyright © <2010>, Intel Corporation.
  4.  *
  5.  * This program is licensed under the terms and conditions of the
  6.  * Eclipse Public License (EPL), version 1.0.  The full text of the EPL is at
  7.  * http://www.opensource.org/licenses/eclipse-1.0.php.
  8.  *
  9.  */
  10. // Module name: scoreboard_save_AS.asm
  11. //
  12. // Save scoreboard data before content switching
  13. //
  14. //
  15.         //      r1 - r35 need to be saved
  16.         // They are saved in a 2D surface with width of 32 and height of 64.
  17.         // Each row corresponds to one GRF register in the following order
  18.         // r4 - r35     : Scoreboard message
  19.         // r1 - r3  : Scoreboard kernel control data
  20.  
  21.     mov (8)     MSGHDR<1>:ud    r0.0<8;8,1>:ud  // Initialize message header payload with r0
  22.     mov (1)     MSGHDR.2:ud             0x0007001f:ud   // for 8 registers
  23.  
  24.     mov (2)     MSGHDR.0:ud             0:ud
  25.         $for(0; <8; 2) {
  26.         mov (16)        MSGPAYLOADD(%1)<1>      CMD_SB(%1)REGION(8,1) {Compr}
  27.         }
  28.     send (8)    NULLREG MSGHDR  null:ud DWBWMSGDSC+0x00800000+AS_SAVE   // Save r4 - r11
  29.  
  30.     mov (1)     MSGHDR.1:ud             8:ud
  31.         $for(0; <8; 2) {
  32.         mov (16)        MSGPAYLOADD(%1)<1>      CMD_SB(%1+8)REGION(8,1) {Compr}
  33.         }
  34.     send (8)    NULLREG MSGHDR  null:ud DWBWMSGDSC+0x00800000+AS_SAVE   // Save r12 - r19
  35.  
  36.     mov (1)     MSGHDR.1:ud             16:ud
  37.         $for(0; <8; 2) {
  38.         mov (16)        MSGPAYLOADD(%1)<1>      CMD_SB(%1+16)REGION(8,1) {Compr}
  39.         }
  40.     send (8)    NULLREG MSGHDR  null:ud DWBWMSGDSC+0x00800000+AS_SAVE   // Save r20 - r27
  41.  
  42.     mov (1)     MSGHDR.1:ud             24:ud
  43.         $for(0; <8; 2) {
  44.         mov (16)        MSGPAYLOADD(%1)<1>      CMD_SB(%1+24)REGION(8,1) {Compr}
  45.         }
  46.     send (8)    NULLREG MSGHDR  null:ud DWBWMSGDSC+0x00800000+AS_SAVE   // Save r28 - r35
  47.  
  48.     mov (1)     MSGHDR.1:ud             32:ud
  49.         $for(0; <8; 2) {
  50.         mov (16)        MSGPAYLOADD(%1)<1>      CMD_SB(%1+32)REGION(8,1) {Compr}
  51.         }
  52.     send (8)    NULLREG MSGHDR  null:ud DWBWMSGDSC+0x00800000+AS_SAVE   // Save r36 - r43
  53.  
  54.     mov (1)     MSGHDR.1:ud             40:ud
  55.         $for(0; <8; 2) {
  56.         mov (16)        MSGPAYLOADD(%1)<1>      CMD_SB(%1+40)REGION(8,1) {Compr}
  57.         }
  58.     send (8)    NULLREG MSGHDR  null:ud DWBWMSGDSC+0x00800000+AS_SAVE   // Save r44 - r51
  59.  
  60.     mov (1)     MSGHDR.1:ud             48:ud
  61.         $for(0; <8; 2) {
  62.         mov (16)        MSGPAYLOADD(%1)<1>      CMD_SB(%1+48)REGION(8,1) {Compr}
  63.         }
  64.     send (8)    NULLREG MSGHDR  null:ud DWBWMSGDSC+0x00800000+AS_SAVE   // Save r52 - r59
  65.  
  66.     mov (1)     MSGHDR.1:ud             56:ud
  67.         $for(0; <8; 2) {
  68.         mov (16)        MSGPAYLOADD(%1)<1>      CMD_SB(%1+56)REGION(8,1) {Compr}
  69.         }
  70.     send (8)    NULLREG MSGHDR  null:ud DWBWMSGDSC+0x00800000+AS_SAVE   // Save r60 - r67
  71.  
  72. // End of scoreboard_save_AS
  73.