compiler.cfg.builder.*: fix for tests that broke on windows

char-rename
Björn Lindqvist 2016-08-05 01:01:25 +02:00
parent 2f12413595
commit 1b08ef3593
3 changed files with 20 additions and 16 deletions

View File

@ -3,7 +3,7 @@ compiler.cfg.builder.alien compiler.cfg.builder.alien.params
compiler.cfg.builder.blocks compiler.cfg.instructions compiler.cfg.builder.blocks compiler.cfg.instructions
compiler.cfg.registers compiler.test compiler.tree.builder compiler.cfg.registers compiler.test compiler.tree.builder
compiler.tree.optimizer cpu.architecture cpu.x86.assembler compiler.tree.optimizer cpu.architecture cpu.x86.assembler
cpu.x86.assembler.operands kernel make namespaces sequences cpu.x86.assembler.operands kernel literals make namespaces sequences
stack-checker.alien system tools.test words ; stack-checker.alien system tools.test words ;
IN: compiler.cfg.builder.alien.tests IN: compiler.cfg.builder.alien.tests
@ -43,13 +43,22 @@ IN: compiler.cfg.builder.alien.tests
! caller-parameters ! caller-parameters
cpu x86.64? [ cpu x86.64? [
{ ${
os windows? [
V{
{ 1 int-rep RCX }
{ 2 float-rep XMM1 }
{ 3 double-rep XMM2 }
{ 4 int-rep R9 }
}
] [
V{ V{
{ 1 int-rep RDI } { 1 int-rep RDI }
{ 2 float-rep XMM0 } { 2 float-rep XMM0 }
{ 3 double-rep XMM1 } { 3 double-rep XMM1 }
{ 4 int-rep RSI } { 4 int-rep RSI }
} }
] if
V{ } V{ }
} [ } [
void { int float double char } cdecl f "func" void { int float double char } cdecl f "func"

View File

@ -22,7 +22,7 @@ HOOK: flatten-struct-type cpu ( type -- pairs )
HOOK: flatten-struct-type-return cpu ( type -- pairs ) HOOK: flatten-struct-type-return cpu ( type -- pairs )
M: object flatten-struct-type M: object flatten-struct-type
heap-size cell align cell /i { int-rep f f } <repetition> ; heap-size cell align cell /i { int-rep f f } <array> ;
M: struct-c-type flatten-c-type M: struct-c-type flatten-c-type
flatten-struct-type ; flatten-struct-type ;

View File

@ -1,15 +1,10 @@
USING: alien compiler.cfg.builder.alien.params cpu.architecture USING: alien compiler.cfg.builder.alien.params cpu.architecture
cpu.x86.assembler.operands kernel system tools.test ; cpu.x86.assembler.operands kernel literals system tools.test ;
IN: compiler.cfg.builder.alien.params.tests IN: compiler.cfg.builder.alien.params.tests
! next-reg-param ! next-reg-param
cpu x86.64? [ cpu x86.64? [
{ os windows? { RCX XMM1 XMM2 R9 } { RDI XMM0 XMM1 RSI } ? [
RDI
XMM0
XMM1
RSI
} [
cdecl param-regs init-regs cdecl param-regs init-regs
f int-rep next-reg-param f int-rep next-reg-param
f double-rep next-reg-param f double-rep next-reg-param