1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2025-02-20 00:29:10 +00:00

Renaming.

This commit is contained in:
jespergravgaard 2019-10-06 23:48:27 +02:00
parent 949917f734
commit 873adf0b26
9 changed files with 87 additions and 105 deletions

View File

@ -81,7 +81,7 @@ public class AsmFragmentInstance {
Registers.Register register = boundVar.getAllocation(); Registers.Register register = boundVar.getAllocation();
if(register != null && register instanceof Registers.RegisterZp) { if(register != null && register instanceof Registers.RegisterZp) {
return new AsmParameter(AsmFormat.getAsmParamName(boundVar, codeScopeRef), true); return new AsmParameter(AsmFormat.getAsmParamName(boundVar, codeScopeRef), true);
} else if(register!=null && register instanceof Registers.RegisterMemory) { } else if(register!=null && register instanceof Registers.RegisterMainMem) {
return new AsmParameter(AsmFormat.getAsmParamName(boundVar, codeScopeRef), false); return new AsmParameter(AsmFormat.getAsmParamName(boundVar, codeScopeRef), false);
} else { } else {
throw new RuntimeException("Register Type not implemented " + register); throw new RuntimeException("Register Type not implemented " + register);

View File

@ -472,13 +472,13 @@ public class AsmFragmentInstanceSpecFactory {
zpNameIdx = Integer.toString(nextZpIdx++); zpNameIdx = Integer.toString(nextZpIdx++);
} }
return "z" + zpNameIdx; return "z" + zpNameIdx;
} else if(Registers.RegisterType.MEMORY.equals(register.getType())) { } else if(Registers.RegisterType.MAIN_MEM.equals(register.getType())) {
String memNameIdx = null; String memNameIdx = null;
for(String boundName : bindings.keySet()) { for(String boundName : bindings.keySet()) {
Value boundValue = bindings.get(boundName); Value boundValue = bindings.get(boundName);
if(boundValue instanceof Variable) { if(boundValue instanceof Variable) {
Registers.Register boundRegister = ((Variable) boundValue).getAllocation(); Registers.Register boundRegister = ((Variable) boundValue).getAllocation();
if(boundRegister instanceof Registers.RegisterMemory) { if(boundRegister instanceof Registers.RegisterMainMem) {
if(boundRegister.equals(register)) { if(boundRegister.equals(register)) {
memNameIdx = boundName.substring(boundName.length() - 1); memNameIdx = boundName.substring(boundName.length() - 1);
break; break;

View File

@ -106,12 +106,12 @@ public class AsmFragmentTemplate {
Variable v4 = new Variable("m4", scope, SymbolType.BYTE, null, SymbolVariable.StorageStrategy.MEMORY); Variable v4 = new Variable("m4", scope, SymbolType.BYTE, null, SymbolVariable.StorageStrategy.MEMORY);
Variable v5 = new Variable("m5", scope, SymbolType.BYTE, null, SymbolVariable.StorageStrategy.MEMORY); Variable v5 = new Variable("m5", scope, SymbolType.BYTE, null, SymbolVariable.StorageStrategy.MEMORY);
Variable v6 = new Variable("m6", scope, SymbolType.BYTE, null, SymbolVariable.StorageStrategy.MEMORY); Variable v6 = new Variable("m6", scope, SymbolType.BYTE, null, SymbolVariable.StorageStrategy.MEMORY);
v1.setAllocation(new Registers.RegisterMemory(v1.getRef(), 1)); v1.setAllocation(new Registers.RegisterMainMem(v1.getRef(), 1));
v2.setAllocation(new Registers.RegisterMemory(v2.getRef(), 1)); v2.setAllocation(new Registers.RegisterMainMem(v2.getRef(), 1));
v3.setAllocation(new Registers.RegisterMemory(v3.getRef(), 1)); v3.setAllocation(new Registers.RegisterMainMem(v3.getRef(), 1));
v4.setAllocation(new Registers.RegisterMemory(v4.getRef(), 1)); v4.setAllocation(new Registers.RegisterMainMem(v4.getRef(), 1));
v5.setAllocation(new Registers.RegisterMemory(v5.getRef(), 1)); v5.setAllocation(new Registers.RegisterMainMem(v5.getRef(), 1));
v6.setAllocation(new Registers.RegisterMemory(v6.getRef(), 1)); v6.setAllocation(new Registers.RegisterMainMem(v6.getRef(), 1));
if(signature.contains("m1")) bindings.put("m1", v1); if(signature.contains("m1")) bindings.put("m1", v1);
if(signature.contains("m2")) bindings.put("m2", v2); if(signature.contains("m2")) bindings.put("m2", v2);
if(signature.contains("m3")) bindings.put("m3", v3); if(signature.contains("m3")) bindings.put("m3", v3);

View File

@ -48,8 +48,8 @@ public class Registers {
REG_ALU, REG_ALU,
ZP_VAR, ZP_VAR,
ZP_MEM, ZP_MEM,
MAIN_MEM,
CONSTANT, CONSTANT,
MEMORY
} }
/** A register used for storing a single variable. */ /** A register used for storing a single variable. */
@ -65,13 +65,13 @@ public class Registers {
} }
public static class RegisterMemory implements Register { public static class RegisterMainMem implements Register {
private VariableRef variableRef; private VariableRef variableRef;
private int bytes; private int bytes;
public RegisterMemory(VariableRef variableRef, int bytes ) { public RegisterMainMem(VariableRef variableRef, int bytes ) {
this.variableRef = variableRef; this.variableRef = variableRef;
this.bytes = bytes; this.bytes = bytes;
} }
@ -82,7 +82,7 @@ public class Registers {
@Override @Override
public RegisterType getType() { public RegisterType getType() {
return RegisterType.MEMORY; return RegisterType.MAIN_MEM;
} }
@Override @Override
@ -114,7 +114,7 @@ public class Registers {
public boolean equals(Object o) { public boolean equals(Object o) {
if(this == o) return true; if(this == o) return true;
if(o == null || getClass() != o.getClass()) return false; if(o == null || getClass() != o.getClass()) return false;
RegisterMemory that = (RegisterMemory) o; RegisterMainMem that = (RegisterMainMem) o;
return Objects.equals(variableRef, that.variableRef); return Objects.equals(variableRef, that.variableRef);
} }
@ -237,27 +237,13 @@ public class Registers {
/** A zero page address used as a register for a declared register allocation. Size is initially unknown and will be resolved when performing allocation by setting the type. */ /** A zero page address used as a register for a declared register allocation. Size is initially unknown and will be resolved when performing allocation by setting the type. */
public static class RegisterZpDeclared extends RegisterZp { public static class RegisterZpDeclared extends RegisterZp {
private RegisterType type;
private int bytes;
public RegisterZpDeclared(int zp) { public RegisterZpDeclared(int zp) {
super(zp); super(zp);
this.type = RegisterType.ZP_VAR;
this.bytes = -1;
} }
@Override @Override
public RegisterType getType() { public RegisterType getType() {
return type; return RegisterType.ZP_MEM;
}
public void setType(RegisterType type) {
this.type = type;
}
public void setBytes(int bytes) {
this.bytes = bytes;
} }
@Override @Override
@ -267,7 +253,7 @@ public class Registers {
@Override @Override
public int getBytes() { public int getBytes() {
return bytes; return -1;
} }
public RegisterZpMem getZpRegister(int bytes) { public RegisterZpMem getZpRegister(int bytes) {
@ -276,16 +262,12 @@ public class Registers {
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
if(this == o) return true; return super.equals(o);
if(o == null || getClass() != o.getClass()) return false;
if(!super.equals(o)) return false;
RegisterZpDeclared that = (RegisterZpDeclared) o;
return type == that.type;
} }
@Override @Override
public int hashCode() { public int hashCode() {
return Objects.hash(super.hashCode(), type); return super.hashCode();
} }
} }

View File

@ -180,7 +180,7 @@ public class Pass4RegistersFinalize extends Pass2Base {
VariableRef variableRef = equivalenceClass.getVariables().get(0); VariableRef variableRef = equivalenceClass.getVariables().get(0);
Variable variable = getProgram().getSymbolInfos().getVariable(variableRef); Variable variable = getProgram().getSymbolInfos().getVariable(variableRef);
if(variable.isStorageMemory()) { if(variable.isStorageMemory()) {
register = new Registers.RegisterMemory(variableRef, variable.getType().getSizeBytes()); register = new Registers.RegisterMainMem(variableRef, variable.getType().getSizeBytes());
} else { } else {
register = allocateNewRegisterZp(variable); register = allocateNewRegisterZp(variable);
} }

View File

@ -93,12 +93,12 @@ SYMBOL TABLE SSA
(label) print2::@2 (label) print2::@2
(label) print2::@7 (label) print2::@7
(label) print2::@return (label) print2::@return
(byte*) print2::at !zp ZP_VAR:250 (byte*) print2::at !zp ZP_MEM:250
(byte*) print2::at#0 !zp ZP_VAR:250 (byte*) print2::at#0 !zp ZP_MEM:250
(byte*) print2::at#1 !zp ZP_VAR:250 (byte*) print2::at#1 !zp ZP_MEM:250
(byte*) print2::at#2 !zp ZP_VAR:250 (byte*) print2::at#2 !zp ZP_MEM:250
(byte*) print2::at#3 !zp ZP_VAR:250 (byte*) print2::at#3 !zp ZP_MEM:250
(byte*) print2::at#4 !zp ZP_VAR:250 (byte*) print2::at#4 !zp ZP_MEM:250
(byte) print2::i (byte) print2::i
(byte) print2::i#0 (byte) print2::i#0
(byte) print2::i#1 (byte) print2::i#1
@ -111,17 +111,17 @@ SYMBOL TABLE SSA
(byte) print2::j#2 (byte) print2::j#2
(byte) print2::j#3 (byte) print2::j#3
(byte) print2::j#4 (byte) print2::j#4
(byte*) print2::msg !zp ZP_VAR:252 (byte*) print2::msg !zp ZP_MEM:252
(byte*) print2::msg#0 !zp ZP_VAR:252 (byte*) print2::msg#0 !zp ZP_MEM:252
(byte*) print2::msg#1 !zp ZP_VAR:252 (byte*) print2::msg#1 !zp ZP_MEM:252
(byte*) print2::msg#2 !zp ZP_VAR:252 (byte*) print2::msg#2 !zp ZP_MEM:252
(byte*) print2::msg#3 !zp ZP_VAR:252 (byte*) print2::msg#3 !zp ZP_MEM:252
(byte*) print2::msg#4 !zp ZP_VAR:252 (byte*) print2::msg#4 !zp ZP_MEM:252
(void()) print_char((byte*) print_char::at , (byte) print_char::idx , (byte) print_char::ch) (void()) print_char((byte*) print_char::at , (byte) print_char::idx , (byte) print_char::ch)
(label) print_char::@return (label) print_char::@return
(byte*) print_char::at !zp ZP_VAR:250 (byte*) print_char::at !zp ZP_MEM:250
(byte*) print_char::at#0 !zp ZP_VAR:250 (byte*) print_char::at#0 !zp ZP_MEM:250
(byte*) print_char::at#1 !zp ZP_VAR:250 (byte*) print_char::at#1 !zp ZP_MEM:250
(byte) print_char::ch !reg byte a (byte) print_char::ch !reg byte a
(byte) print_char::ch#0 !reg byte a (byte) print_char::ch#0 !reg byte a
(byte) print_char::ch#1 !reg byte a (byte) print_char::ch#1 !reg byte a
@ -271,20 +271,20 @@ print_char::@return: scope:[print_char] from print_char
VARIABLE REGISTER WEIGHTS VARIABLE REGISTER WEIGHTS
(void()) main() (void()) main()
(void()) print2((byte*) print2::at , (byte*) print2::msg) (void()) print2((byte*) print2::at , (byte*) print2::msg)
(byte*) print2::at !zp ZP_VAR:250 (byte*) print2::at !zp ZP_MEM:250
(byte*) print2::at#1 !zp ZP_VAR:250 4.125 (byte*) print2::at#1 !zp ZP_MEM:250 4.125
(byte) print2::i (byte) print2::i
(byte) print2::i#1 22.0 (byte) print2::i#1 22.0
(byte) print2::i#2 6.285714285714286 (byte) print2::i#2 6.285714285714286
(byte) print2::j (byte) print2::j
(byte) print2::j#1 11.0 (byte) print2::j#1 11.0
(byte) print2::j#2 5.5 (byte) print2::j#2 5.5
(byte*) print2::msg !zp ZP_VAR:252 (byte*) print2::msg !zp ZP_MEM:252
(byte*) print2::msg#1 !zp ZP_VAR:252 5.5 (byte*) print2::msg#1 !zp ZP_MEM:252 5.5
(void()) print_char((byte*) print_char::at , (byte) print_char::idx , (byte) print_char::ch) (void()) print_char((byte*) print_char::at , (byte) print_char::idx , (byte) print_char::ch)
(byte*) print_char::at !zp ZP_VAR:250 (byte*) print_char::at !zp ZP_MEM:250
(byte*) print_char::at#0 !zp ZP_VAR:250 7.333333333333333 (byte*) print_char::at#0 !zp ZP_MEM:250 7.333333333333333
(byte*) print_char::at#1 !zp ZP_VAR:250 13.0 (byte*) print_char::at#1 !zp ZP_MEM:250 13.0
(byte) print_char::ch !reg byte a (byte) print_char::ch !reg byte a
(byte) print_char::ch#0 !reg byte a 22.0 (byte) print_char::ch#0 !reg byte a 22.0
(byte) print_char::ch#1 !reg byte a 13.0 (byte) print_char::ch#1 !reg byte a 13.0
@ -636,21 +636,21 @@ FINAL SYMBOL TABLE
(label) print2::@2 (label) print2::@2
(label) print2::@3 (label) print2::@3
(label) print2::@return (label) print2::@return
(byte*) print2::at !zp ZP_VAR:250 (byte*) print2::at !zp ZP_MEM:250
(byte*) print2::at#1 at !zp ZP_VAR:250 zp ZP_WORD:250 4.125 (byte*) print2::at#1 at !zp ZP_MEM:250 zp ZP_WORD:250 4.125
(byte) print2::i (byte) print2::i
(byte) print2::i#1 i zp ZP_BYTE:2 22.0 (byte) print2::i#1 i zp ZP_BYTE:2 22.0
(byte) print2::i#2 i zp ZP_BYTE:2 6.285714285714286 (byte) print2::i#2 i zp ZP_BYTE:2 6.285714285714286
(byte) print2::j (byte) print2::j
(byte) print2::j#1 reg byte x 11.0 (byte) print2::j#1 reg byte x 11.0
(byte) print2::j#2 reg byte x 5.5 (byte) print2::j#2 reg byte x 5.5
(byte*) print2::msg !zp ZP_VAR:252 (byte*) print2::msg !zp ZP_MEM:252
(byte*) print2::msg#1 msg !zp ZP_VAR:252 zp ZP_WORD:252 5.5 (byte*) print2::msg#1 msg !zp ZP_MEM:252 zp ZP_WORD:252 5.5
(void()) print_char((byte*) print_char::at , (byte) print_char::idx , (byte) print_char::ch) (void()) print_char((byte*) print_char::at , (byte) print_char::idx , (byte) print_char::ch)
(label) print_char::@return (label) print_char::@return
(byte*) print_char::at !zp ZP_VAR:250 (byte*) print_char::at !zp ZP_MEM:250
(byte*) print_char::at#0 at !zp ZP_VAR:250 zp ZP_WORD:250 7.333333333333333 (byte*) print_char::at#0 at !zp ZP_MEM:250 zp ZP_WORD:250 7.333333333333333
(byte*) print_char::at#1 at !zp ZP_VAR:250 zp ZP_WORD:250 13.0 (byte*) print_char::at#1 at !zp ZP_MEM:250 zp ZP_WORD:250 13.0
(byte) print_char::ch !reg byte a (byte) print_char::ch !reg byte a
(byte) print_char::ch#0 !reg byte a 22.0 (byte) print_char::ch#0 !reg byte a 22.0
(byte) print_char::ch#1 !reg byte a 13.0 (byte) print_char::ch#1 !reg byte a 13.0

View File

@ -9,21 +9,21 @@
(label) print2::@2 (label) print2::@2
(label) print2::@3 (label) print2::@3
(label) print2::@return (label) print2::@return
(byte*) print2::at !zp ZP_VAR:250 (byte*) print2::at !zp ZP_MEM:250
(byte*) print2::at#1 at !zp ZP_VAR:250 zp ZP_WORD:250 4.125 (byte*) print2::at#1 at !zp ZP_MEM:250 zp ZP_WORD:250 4.125
(byte) print2::i (byte) print2::i
(byte) print2::i#1 i zp ZP_BYTE:2 22.0 (byte) print2::i#1 i zp ZP_BYTE:2 22.0
(byte) print2::i#2 i zp ZP_BYTE:2 6.285714285714286 (byte) print2::i#2 i zp ZP_BYTE:2 6.285714285714286
(byte) print2::j (byte) print2::j
(byte) print2::j#1 reg byte x 11.0 (byte) print2::j#1 reg byte x 11.0
(byte) print2::j#2 reg byte x 5.5 (byte) print2::j#2 reg byte x 5.5
(byte*) print2::msg !zp ZP_VAR:252 (byte*) print2::msg !zp ZP_MEM:252
(byte*) print2::msg#1 msg !zp ZP_VAR:252 zp ZP_WORD:252 5.5 (byte*) print2::msg#1 msg !zp ZP_MEM:252 zp ZP_WORD:252 5.5
(void()) print_char((byte*) print_char::at , (byte) print_char::idx , (byte) print_char::ch) (void()) print_char((byte*) print_char::at , (byte) print_char::idx , (byte) print_char::ch)
(label) print_char::@return (label) print_char::@return
(byte*) print_char::at !zp ZP_VAR:250 (byte*) print_char::at !zp ZP_MEM:250
(byte*) print_char::at#0 at !zp ZP_VAR:250 zp ZP_WORD:250 7.333333333333333 (byte*) print_char::at#0 at !zp ZP_MEM:250 zp ZP_WORD:250 7.333333333333333
(byte*) print_char::at#1 at !zp ZP_VAR:250 zp ZP_WORD:250 13.0 (byte*) print_char::at#1 at !zp ZP_MEM:250 zp ZP_WORD:250 13.0
(byte) print_char::ch !reg byte a (byte) print_char::ch !reg byte a
(byte) print_char::ch#0 !reg byte a 22.0 (byte) print_char::ch#0 !reg byte a 22.0
(byte) print_char::ch#1 !reg byte a 13.0 (byte) print_char::ch#1 !reg byte a 13.0

View File

@ -62,17 +62,17 @@ SYMBOL TABLE SSA
(label) main::@1 (label) main::@1
(label) main::@2 (label) main::@2
(label) main::@return (label) main::@return
(byte) main::i !zp ZP_VAR:2 (byte) main::i !zp ZP_MEM:2
(byte) main::i#0 !zp ZP_VAR:2 (byte) main::i#0 !zp ZP_MEM:2
(byte) main::i#1 !zp ZP_VAR:2 (byte) main::i#1 !zp ZP_MEM:2
(byte) main::i#2 !zp ZP_VAR:2 (byte) main::i#2 !zp ZP_MEM:2
(byte) main::i#3 !zp ZP_VAR:2 (byte) main::i#3 !zp ZP_MEM:2
(byte) main::i#4 !zp ZP_VAR:2 (byte) main::i#4 !zp ZP_MEM:2
(signed word) main::j !zp ZP_VAR:4 (signed word) main::j !zp ZP_MEM:4
(signed word) main::j#0 !zp ZP_VAR:4 (signed word) main::j#0 !zp ZP_MEM:4
(signed word) main::j#1 !zp ZP_VAR:4 (signed word) main::j#1 !zp ZP_MEM:4
(signed word) main::j#2 !zp ZP_VAR:4 (signed word) main::j#2 !zp ZP_MEM:4
(signed word) main::j#3 !zp ZP_VAR:4 (signed word) main::j#3 !zp ZP_MEM:4
(signed word) main::k (signed word) main::k
(signed word) main::k#0 (signed word) main::k#0
@ -179,13 +179,13 @@ VARIABLE REGISTER WEIGHTS
(signed word~) main::$1 22.0 (signed word~) main::$1 22.0
(byte~) main::$3 22.0 (byte~) main::$3 22.0
(byte~) main::$4 22.0 (byte~) main::$4 22.0
(byte) main::i !zp ZP_VAR:2 (byte) main::i !zp ZP_MEM:2
(byte) main::i#1 !zp ZP_VAR:2 5.5 (byte) main::i#1 !zp ZP_MEM:2 5.5
(byte) main::i#2 !zp ZP_VAR:2 22.0 (byte) main::i#2 !zp ZP_MEM:2 22.0
(byte) main::i#3 !zp ZP_VAR:2 11.0 (byte) main::i#3 !zp ZP_MEM:2 11.0
(signed word) main::j !zp ZP_VAR:4 (signed word) main::j !zp ZP_MEM:4
(signed word) main::j#1 !zp ZP_VAR:4 3.6666666666666665 (signed word) main::j#1 !zp ZP_MEM:4 3.6666666666666665
(signed word) main::j#2 !zp ZP_VAR:4 6.6000000000000005 (signed word) main::j#2 !zp ZP_MEM:4 6.6000000000000005
(signed word) main::k (signed word) main::k
(signed word) main::k#0 11.0 (signed word) main::k#0 11.0
@ -482,13 +482,13 @@ FINAL SYMBOL TABLE
(label) main::@1 (label) main::@1
(label) main::@2 (label) main::@2
(label) main::@return (label) main::@return
(byte) main::i !zp ZP_VAR:2 (byte) main::i !zp ZP_MEM:2
(byte) main::i#1 i !zp ZP_VAR:2 zp ZP_BYTE:2 5.5 (byte) main::i#1 i !zp ZP_MEM:2 zp ZP_BYTE:2 5.5
(byte) main::i#2 i !zp ZP_VAR:2 zp ZP_BYTE:2 22.0 (byte) main::i#2 i !zp ZP_MEM:2 zp ZP_BYTE:2 22.0
(byte) main::i#3 i !zp ZP_VAR:2 zp ZP_BYTE:2 11.0 (byte) main::i#3 i !zp ZP_MEM:2 zp ZP_BYTE:2 11.0
(signed word) main::j !zp ZP_VAR:4 (signed word) main::j !zp ZP_MEM:4
(signed word) main::j#1 j !zp ZP_VAR:4 zp ZP_WORD:4 3.6666666666666665 (signed word) main::j#1 j !zp ZP_MEM:4 zp ZP_WORD:4 3.6666666666666665
(signed word) main::j#2 j !zp ZP_VAR:4 zp ZP_WORD:4 6.6000000000000005 (signed word) main::j#2 j !zp ZP_MEM:4 zp ZP_WORD:4 6.6000000000000005
(signed word) main::k (signed word) main::k
(signed word) main::k#0 k zp ZP_WORD:6 11.0 (signed word) main::k#0 k zp ZP_WORD:6 11.0

View File

@ -9,13 +9,13 @@
(label) main::@1 (label) main::@1
(label) main::@2 (label) main::@2
(label) main::@return (label) main::@return
(byte) main::i !zp ZP_VAR:2 (byte) main::i !zp ZP_MEM:2
(byte) main::i#1 i !zp ZP_VAR:2 zp ZP_BYTE:2 5.5 (byte) main::i#1 i !zp ZP_MEM:2 zp ZP_BYTE:2 5.5
(byte) main::i#2 i !zp ZP_VAR:2 zp ZP_BYTE:2 22.0 (byte) main::i#2 i !zp ZP_MEM:2 zp ZP_BYTE:2 22.0
(byte) main::i#3 i !zp ZP_VAR:2 zp ZP_BYTE:2 11.0 (byte) main::i#3 i !zp ZP_MEM:2 zp ZP_BYTE:2 11.0
(signed word) main::j !zp ZP_VAR:4 (signed word) main::j !zp ZP_MEM:4
(signed word) main::j#1 j !zp ZP_VAR:4 zp ZP_WORD:4 3.6666666666666665 (signed word) main::j#1 j !zp ZP_MEM:4 zp ZP_WORD:4 3.6666666666666665
(signed word) main::j#2 j !zp ZP_VAR:4 zp ZP_WORD:4 6.6000000000000005 (signed word) main::j#2 j !zp ZP_MEM:4 zp ZP_WORD:4 6.6000000000000005
(signed word) main::k (signed word) main::k
(signed word) main::k#0 k zp ZP_WORD:6 11.0 (signed word) main::k#0 k zp ZP_WORD:6 11.0