| #include <stdio.h> |
| #include "macro_load_store.h" |
| |
| int main() |
| { |
| #if defined(__mips_hard_float) |
| int i; |
| int s1 = sizeof(int); |
| int s2 = sizeof(unsigned long long); |
| init_reg_val2(); |
| /**********************************************************************/ |
| /*-------------------------------LOAD---------------------------------*/ |
| /**********************************************************************/ |
| printf("--- LDC1 ---\n"); |
| for (i = 0; i < N*s1; i = i+8) |
| TEST3("ldc1", i, reg_val1); |
| |
| for (i = 0; i < N*s2; i = i+8) |
| TEST3("ldc1", i, reg_val2); |
| |
| printf("--- LDXC1 ---\n"); |
| for (i = 0; i < N*s1; i = i+8) |
| TEST5("ldxc1", i, reg_val1); |
| |
| for (i = 0; i < N*s2; i = i+8) |
| TEST5("ldxc1", i, reg_val2); |
| |
| printf("--- LWC1 ---\n"); |
| for (i = 0; i < N*s1; i = i+4) |
| TEST3w("lwc1", i, reg_val1); |
| |
| for (i = 0; i < N*s2; i = i+4) |
| TEST3w("lwc1", i, reg_val2); |
| |
| printf("--- LWXC1 ---\n"); |
| for (i = 0; i < N*s1; i = i+4) |
| TEST5w("lwxc1", i, reg_val1); |
| |
| for (i = 0; i < N*s2; i = i+4) |
| TEST5w("lwxc1", i, reg_val2); |
| |
| /**********************************************************************/ |
| /*-------------------------------STORE--------------------------------*/ |
| /**********************************************************************/ |
| init_reg_val_zero(); |
| printf("--- SDC1 ---\n"); |
| for (i = 0; i < N*s1; i = i+8) { |
| TEST4("sdc1", i); |
| } |
| |
| init_reg_val_zero(); |
| printf("--- SWC1 ---\n"); |
| for (i = 0; i < (N-1)*s1; i = i+4) { |
| TEST4("swc1", i); |
| } |
| |
| init_reg_val_zero(); |
| printf("--- SDXC1 ---\n"); |
| for (i = 0; i < N*s1; i = i+8) { |
| TEST6("sdxc1", i); |
| } |
| |
| init_reg_val_zero(); |
| printf("--- SWXC1 ---\n"); |
| for (i = 0; i < (N-1)*s1; i = i+4) { |
| TEST6("swxc1", i); |
| } |
| #endif |
| |
| return 0; |
| } |