1
0
mirror of https://github.com/antonblanchard/microwatt.git synced 2026-01-20 09:44:56 +00:00
Paul Mackerras ba34914465 tests/misc: Add a test for a load that hits two preceding stores
This checks that the store forwarding machinery in the dcache
correctly combines forwarded stores when they are partial stores
(i.e. only writing part of the doubleword, as for a byte store).

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
2021-09-03 09:09:44 +10:00

79 lines
1.2 KiB
C

#include <stddef.h>
#include <stdint.h>
#include <stdbool.h>
#include "console.h"
#define TEST "Test "
#define PASS "PASS\n"
#define FAIL "FAIL\n"
#define PVR_MICROWATT 0x00630000
extern long test_addpcis_1(void);
extern long test_addpcis_2(void);
extern long test_mfpvr(void);
extern long test_mtpvr(void);
extern long test_bdnzl(void);
extern long test_loadhitstore(void);
// i < 100
void print_test_number(int i)
{
puts(TEST);
putchar(48 + i/10);
putchar(48 + i%10);
putchar(':');
}
int main(void)
{
int fail = 0;
console_init();
print_test_number(1);
if (test_addpcis_1() != 0) {
fail = 1;
puts(FAIL);
} else
puts(PASS);
print_test_number(2);
if (test_addpcis_2() != 0) {
fail = 1;
puts(FAIL);
} else
puts(PASS);
print_test_number(3);
if (test_mfpvr() != PVR_MICROWATT) {
fail = 1;
puts(FAIL);
} else
puts(PASS);
print_test_number(4);
if (test_mtpvr() != PVR_MICROWATT) {
fail = 1;
puts(FAIL);
} else
puts(PASS);
print_test_number(5);
if (test_bdnzl() != 0) {
fail = 1;
puts(FAIL);
} else
puts(PASS);
print_test_number(6);
if (test_loadhitstore() != 0) {
fail = 1;
puts(FAIL);
} else
puts(PASS);
return fail;
}