dcef.cgs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # frv testcase for dcef @(GRi,GRj),a
  2. # mach: fr400 fr550
  3. .include "testutils.inc"
  4. start
  5. .global dcef
  6. dcef:
  7. and_spr_immed 0x7fffffff,hsr0 ; data cache only: copy-back mode
  8. set_gr_addr doit,gr10
  9. set_gr_immed 0,gr11
  10. set_gr_immed 1,gr12
  11. set_gr_immed 2,gr13
  12. set_gr_immed 3,gr14
  13. set_spr_addr ok1,lr
  14. bra doit
  15. ok1: test_gr_immed 1,gr11
  16. set_mem_immed 0x9600b00d,gr10 ; change to add gr11,gr13,gr11 in cache
  17. set_spr_addr ok2,lr
  18. bra doit
  19. ok2: test_gr_immed 2,gr11 ; still only added 1
  20. set_gr_addr doit1,gr10
  21. set_mem_immed 0x9600b00d,gr10 ; change to add gr11,gr13,gr11 in cache
  22. dcef @(gr10,gr0),1 ; flush data cache
  23. set_spr_addr ok3,lr
  24. bra doit1
  25. ok3: test_gr_immed 4,gr11 ; added 2 this time
  26. set_gr_addr doit2,gr10
  27. set_mem_immed 0x9600b00e,gr10 ; change to add gr11,gr14,gr11 in cache
  28. dcef @(gr0,gr0),1 ; flush data cache
  29. set_spr_addr ok4,lr
  30. bra doit2
  31. ok4: test_gr_immed 7,gr11 ; added 3 this time
  32. pass
  33. doit: add gr11,gr12,gr11
  34. bralr
  35. doit1: add gr11,gr12,gr11
  36. bralr
  37. doit2: add gr11,gr12,gr11
  38. bralr