Compare commits
3 Commits
39d18827f5
...
869c7d3d32
Author | SHA1 | Date |
---|---|---|
Denis Drakhnia | 869c7d3d32 | |
Denis Drakhnia | 639b4ac7bd | |
Denis Drakhnia | 9eac08d540 |
|
@ -0,0 +1,23 @@
|
||||||
|
[constants]
|
||||||
|
arch = 'e2k-linux'
|
||||||
|
sysroot = '/opt/mcst/fs/e2k-v' + iset
|
||||||
|
toolchain = '/opt/mcst/lcc-e2k-v' + iset / 'bin.toolchain'
|
||||||
|
common_flags = ['-mcpu=' + mcpu]
|
||||||
|
|
||||||
|
[built-in options]
|
||||||
|
c_args = common_flags
|
||||||
|
cpp_args = common_flags
|
||||||
|
c_link_args = common_flags
|
||||||
|
cpp_link_args = common_flags
|
||||||
|
|
||||||
|
[binaries]
|
||||||
|
c = toolchain / arch + '-cc'
|
||||||
|
cpp = toolchain / arch + '-c++'
|
||||||
|
strip = toolchain / arch + '-strip'
|
||||||
|
exe_wrapper = ['qemu-e2k', '-cpu', cpu + ',tags=on', '-L', sysroot]
|
||||||
|
|
||||||
|
[host_machine]
|
||||||
|
system = 'linux'
|
||||||
|
cpu_family = 'e2k'
|
||||||
|
cpu = cpu
|
||||||
|
endian = 'little'
|
|
@ -0,0 +1,23 @@
|
||||||
|
[constants]
|
||||||
|
arch = 'e2k-linux'
|
||||||
|
sysroot = '/opt/mcst/fs/e2k-v' + iset
|
||||||
|
toolchain = '/opt/mcst/lcc-e2k-v' + iset / 'bin.toolchain'
|
||||||
|
common_flags = ['-mtune=' + mcpu, '--sysroot', sysroot]
|
||||||
|
|
||||||
|
[built-in options]
|
||||||
|
c_args = common_flags
|
||||||
|
cpp_args = common_flags
|
||||||
|
c_link_args = common_flags
|
||||||
|
cpp_link_args = common_flags
|
||||||
|
|
||||||
|
[binaries]
|
||||||
|
c = toolchain / arch + '-cc'
|
||||||
|
cpp = toolchain / arch + '-c++'
|
||||||
|
strip = toolchain / arch + '-strip'
|
||||||
|
exe_wrapper = ['qemu-e2k', '-cpu', cpu + ',tags=on', '-L', sysroot]
|
||||||
|
|
||||||
|
[host_machine]
|
||||||
|
system = 'linux'
|
||||||
|
cpu_family = 'e2k'
|
||||||
|
cpu = cpu
|
||||||
|
endian = 'little'
|
|
@ -0,0 +1,5 @@
|
||||||
|
[constants]
|
||||||
|
cpu = 'elbrus'
|
||||||
|
mcpu = cpu
|
||||||
|
iset = '1'
|
||||||
|
toolchain = '/opt/mcst/lcc/bin.toolchain'
|
|
@ -0,0 +1,5 @@
|
||||||
|
[constants]
|
||||||
|
cpu = 'e2c+'
|
||||||
|
mcpu = 'elbrus-2c+'
|
||||||
|
iset = '2'
|
||||||
|
toolchain = '/opt/mcst/lcc/bin.toolchain'
|
|
@ -0,0 +1,5 @@
|
||||||
|
[constants]
|
||||||
|
cpu = 'e4c'
|
||||||
|
mcpu = 'elbrus-4c'
|
||||||
|
iset = '3'
|
||||||
|
toolchain = '/opt/mcst/lcc/bin.toolchain'
|
|
@ -0,0 +1,5 @@
|
||||||
|
[constants]
|
||||||
|
cpu = 'e8c'
|
||||||
|
mcpu = 'elbrus-8c'
|
||||||
|
iset = '4'
|
||||||
|
toolchain = '/opt/mcst/lcc/bin.toolchain'
|
|
@ -0,0 +1,5 @@
|
||||||
|
[constants]
|
||||||
|
cpu = 'e8c2'
|
||||||
|
mcpu = 'elbrus-8c2'
|
||||||
|
iset = '5'
|
||||||
|
toolchain = '/opt/mcst/lcc/bin.toolchain'
|
|
@ -0,0 +1,5 @@
|
||||||
|
[constants]
|
||||||
|
cpu = 'e16c'
|
||||||
|
mcpu = 'elbrus-16c'
|
||||||
|
iset = '6'
|
||||||
|
toolchain = '/opt/mcst/lcc/bin.toolchain'
|
|
@ -0,0 +1,4 @@
|
||||||
|
[constants]
|
||||||
|
cpu = 'e48c'
|
||||||
|
mcpu = 'elbrus-48c'
|
||||||
|
iset = '7'
|
|
@ -1,12 +0,0 @@
|
||||||
[binaries]
|
|
||||||
c = 'e2k-linux-cc'
|
|
||||||
cpp = 'e2k-linux-c++'
|
|
||||||
ar = 'e2k-linux-ar'
|
|
||||||
strip = 'e2k-linux-strip'
|
|
||||||
exe_wrapper = 'qemu-e2k'
|
|
||||||
|
|
||||||
[host_machine]
|
|
||||||
system = 'linux'
|
|
||||||
cpu_family = 'e2k'
|
|
||||||
cpu = 'e8c'
|
|
||||||
endian = 'little'
|
|
|
@ -70,6 +70,8 @@ asm_tests = {
|
||||||
'out-of-bounds-2': { 'should_fail': true },
|
'out-of-bounds-2': { 'should_fail': true },
|
||||||
'out-of-bounds-3': { 'should_fail': true },
|
'out-of-bounds-3': { 'should_fail': true },
|
||||||
'br-1': {},
|
'br-1': {},
|
||||||
|
'same-reg-access-1': {},
|
||||||
|
'same-reg-access-2': {},
|
||||||
},
|
},
|
||||||
'ct': {
|
'ct': {
|
||||||
'ibranch-1': {},
|
'ibranch-1': {},
|
||||||
|
@ -221,6 +223,9 @@ asm_tests = {
|
||||||
'stmqp-page-3': { 'src': 'stmqp-page-1', 'c_args': ['-DMIN_VER=6'] },
|
'stmqp-page-3': { 'src': 'stmqp-page-1', 'c_args': ['-DMIN_VER=6'] },
|
||||||
'stmqp-page-4': { 'src': 'stmqp-page-2', 'c_args': ['-DMIN_VER=6'] },
|
'stmqp-page-4': { 'src': 'stmqp-page-2', 'c_args': ['-DMIN_VER=6'] },
|
||||||
},
|
},
|
||||||
|
'v7': {
|
||||||
|
'qpack-1': {},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach suite, tests : asm_tests
|
foreach suite, tests : asm_tests
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
#include "test_start.S"
|
||||||
|
|
||||||
|
setwd wsz=4, nfx=1
|
||||||
|
{
|
||||||
|
addd,0 0, 0x0706050403020100, %g16
|
||||||
|
addd,1 0, 0x0f0e0d0c0b0a0908, %g17
|
||||||
|
}
|
||||||
|
{
|
||||||
|
addd,0 0, 0x7060504030201000, %g18
|
||||||
|
addd,1 0, 0xf0e0d0c0b0a09080, %g19
|
||||||
|
}
|
||||||
|
{
|
||||||
|
qppackdl,0 %g17, %g16, %g16
|
||||||
|
qppackdl,1 %g19, %g18, %g17
|
||||||
|
}
|
||||||
|
{
|
||||||
|
qpackhbss,0 %g16, %g17, %r0
|
||||||
|
qpackhbus,1 %g16, %g17, %r1
|
||||||
|
qpackwhss,3 %g16, %g17, %r2
|
||||||
|
qpackwhus,4 %g16, %g17, %r3
|
||||||
|
}
|
||||||
|
{
|
||||||
|
qpacksshb,1 %g16, %g17, %r4
|
||||||
|
qpackushb,4 %g16, %g17, %r5
|
||||||
|
}
|
||||||
|
{
|
||||||
|
qpacksswh,1 %g16, %g17, %r6
|
||||||
|
qpackuswh,4 %g16, %g17, %r7
|
||||||
|
}
|
||||||
|
assert_eq_i64(%r0, %r4)
|
||||||
|
assert_eq_i64(%r1, %r5)
|
||||||
|
assert_eq_i64(%r2, %r6)
|
||||||
|
assert_eq_i64(%r3, %r7)
|
||||||
|
{
|
||||||
|
qpswitchd,0 %r0, %r0
|
||||||
|
qpswitchd,1 %r1, %r1
|
||||||
|
qpswitchd,3 %r2, %r2
|
||||||
|
qpswitchd,4 %r3, %r3
|
||||||
|
}
|
||||||
|
{
|
||||||
|
qpswitchd,0 %r4, %r4
|
||||||
|
qpswitchd,1 %r5, %r5
|
||||||
|
qpswitchd,3 %r6, %r6
|
||||||
|
qpswitchd,4 %r7, %r7
|
||||||
|
}
|
||||||
|
assert_eq_i64(%r0, %r4)
|
||||||
|
assert_eq_i64(%r1, %r5)
|
||||||
|
assert_eq_i64(%r2, %r6)
|
||||||
|
assert_eq_i64(%r3, %r7)
|
||||||
|
|
||||||
|
#include "test_end.S"
|
|
@ -0,0 +1,29 @@
|
||||||
|
#include "test_start.S"
|
||||||
|
|
||||||
|
{
|
||||||
|
setwd wsz=8, nfx=1
|
||||||
|
setbn rsz=3, rbs=4, rcur=0
|
||||||
|
}
|
||||||
|
{
|
||||||
|
ldd,0 [ mem ], %empty
|
||||||
|
}
|
||||||
|
{
|
||||||
|
addd,1 0, 0, %r8
|
||||||
|
addd,2 0, 0, %r9
|
||||||
|
}
|
||||||
|
{
|
||||||
|
ldd,0 [ mem ], %r8
|
||||||
|
ldd,2 [ mem ], %r9
|
||||||
|
}
|
||||||
|
{
|
||||||
|
addd,0 %b[0], 0, %r0
|
||||||
|
addd,2 %b[1], 0, %r1
|
||||||
|
}
|
||||||
|
assert_eq_i64(%r0, 0xdeadbeef)
|
||||||
|
assert_eq_i64(%r1, 0xdeadbeef)
|
||||||
|
|
||||||
|
#include "test_end.S"
|
||||||
|
|
||||||
|
.section ".rodata"
|
||||||
|
mem:
|
||||||
|
.quad 0xdeadbeef
|
|
@ -0,0 +1,29 @@
|
||||||
|
#include "test_start.S"
|
||||||
|
|
||||||
|
{
|
||||||
|
setwd wsz=8, nfx=1
|
||||||
|
setbn rsz=3, rbs=4, rcur=0
|
||||||
|
}
|
||||||
|
{
|
||||||
|
ldd,0 [ mem ], %empty
|
||||||
|
}
|
||||||
|
{
|
||||||
|
addd,1 0, 0, %b[0]
|
||||||
|
addd,2 0, 0, %b[1]
|
||||||
|
}
|
||||||
|
{
|
||||||
|
ldd,0 [ mem ], %b[0]
|
||||||
|
ldd,2 [ mem ], %b[1]
|
||||||
|
}
|
||||||
|
{
|
||||||
|
addd,0 %r8, 0, %r0
|
||||||
|
addd,2 %r9, 0, %r1
|
||||||
|
}
|
||||||
|
assert_eq_i64(%r0, 0xdeadbeef)
|
||||||
|
assert_eq_i64(%r1, 0xdeadbeef)
|
||||||
|
|
||||||
|
#include "test_end.S"
|
||||||
|
|
||||||
|
.section ".rodata"
|
||||||
|
mem:
|
||||||
|
.quad 0xdeadbeef
|
Loading…
Reference in New Issue