1436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#include <stdio.h> 2436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovunsigned int mem[] = { 3436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 0xaabbccdd, 0x11223344, 0x01823194, 0x01823a08, 4436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 0x00000000, 0x77ff528c, 0x77deb460, 0x00000001 5436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 6436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 7436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovvoid printMem(char* s) 8436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov{ 9436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int i; 10436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov printf("%s\n", s); 11436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov for (i=0; i<7 ; i=i+1) 12436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov printf("mem[%d]: 0x%x\n", i, mem[i]); 13436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov} 14436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 15436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovint main () 16436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov{ 17436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov printMem("PRE lwl"); 18436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __asm__ volatile("move $a0, %0" "\n\t" 19436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "lw $t0, 0($a0)" "\n\t" 20436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "lwl $t0, 4($a0)" "\n\t" 21436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "sw $t0, 8($a0)" "\n\t" 22436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "lw $t1, 0($a0)" "\n\t" 23436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "lwl $t1, 5($a0)" "\n\t" 24436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "sw $t1, 12($a0)" "\n\t" 25436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "lw $t2, 0($a0)" "\n\t" 26436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "lwl $t2, 6($a0)" "\n\t" 27436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "sw $t2, 16($a0)" "\n\t" 28436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "lw $t3, 0($a0)" "\n\t" 29436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "lwl $t3, 7($a0)" "\n\t" 30436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "sw $t3, 20($a0)" "\n\t" 31436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov : 32436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov : "r" (mem) 33436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov : "a0", "t0", "t1", "t2", "t3", "cc", "memory" 34436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov ); 35436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov printMem("POST lwl"); 36436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 37436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov mem[0] = 0xaabbccdd; 38436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov mem[1] = 0x11223344; 39436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov mem[2] = 0x01823194; 40436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov mem[3] = 0x01823a08; 41436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov mem[4] = 0x00000000; 42436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov mem[5] = 0x77ff528c; 43436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov mem[6] = 0x77deb460; 44436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov mem[7] = 0x00000001; 45436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 46436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov printMem("PRE lwr"); 47436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __asm__ volatile("move $a0, %0" "\n\t" 48436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "lw $t0, 0($a0)" "\n\t" 49436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "lwr $t0, 4($a0)" "\n\t" 50436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "sw $t0, 8($a0)" "\n\t" 51436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "lw $t1, 0($a0)" "\n\t" 52436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "lwr $t1, 5($a0)" "\n\t" 53436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "sw $t1, 12($a0)" "\n\t" 54436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "lw $t2, 0($a0)" "\n\t" 55436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "lwr $t2, 6($a0)" "\n\t" 56436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "sw $t2, 16($a0)" "\n\t" 57436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "lw $t3, 0($a0)" "\n\t" 58436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "lwr $t3, 7($a0)" "\n\t" 59436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov "sw $t3, 20($a0)" "\n\t" 60436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov : 61436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov : "r" (mem) 62436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov : "a0", "t0", "t1", "t2", "t3", "cc", "memory" 63436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov ); 64436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov printMem("POST lwr"); 65436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 66436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov return 0; 67436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov} 68