pass: de-prioritize base pointer in register allocation (#184)

Updates #156
This commit is contained in:
Michael McLoughlin
2021-04-18 19:22:09 -07:00
committed by GitHub
parent f295bde84c
commit c32f24fb1e
9 changed files with 5273 additions and 5207 deletions

View File

@@ -8,17 +8,17 @@ TEXT ·GP8(SB), NOSPLIT, $8-1
MOVB $0x02, CL
MOVB $0x03, DL
MOVB $0x04, BL
MOVB $0x05, BP
MOVB $0x06, SI
MOVB $0x07, DI
MOVB $0x08, R8
MOVB $0x09, R9
MOVB $0x0a, R10
MOVB $0x0b, R11
MOVB $0x0c, R12
MOVB $0x0d, R13
MOVB $0x0e, R14
MOVB $0x0f, R15
MOVB $0x05, SI
MOVB $0x06, DI
MOVB $0x07, R8
MOVB $0x08, R9
MOVB $0x09, R10
MOVB $0x0a, R11
MOVB $0x0b, R12
MOVB $0x0c, R13
MOVB $0x0d, R14
MOVB $0x0e, R15
MOVB $0x0f, BP
MOVB $0x10, AH
MOVB $0x11, CH
MOVB $0x12, DH
@@ -26,7 +26,6 @@ TEXT ·GP8(SB), NOSPLIT, $8-1
ADDB CL, AL
ADDB DL, AL
ADDB BL, AL
ADDB BP, AL
ADDB SI, AL
ADDB DI, AL
ADDB R8, AL
@@ -37,6 +36,7 @@ TEXT ·GP8(SB), NOSPLIT, $8-1
ADDB R13, AL
ADDB R14, AL
ADDB R15, AL
ADDB BP, AL
ADDB AH, AL
ADDB CH, AL
ADDB DH, AL

View File

@@ -8,36 +8,35 @@ TEXT ·Masks(SB), NOSPLIT, $8-16
MOVQ $0x0002002a, CX
MOVQ $0x0003002a, DX
MOVQ $0x0004002a, BX
MOVQ $0x0005002a, BP
MOVQ $0x0006002a, SI
MOVQ $0x0007002a, DI
MOVQ $0x0008002a, R8
MOVQ $0x0009002a, R9
MOVQ $0x000a002a, R10
MOVQ $0x000b002a, R11
MOVQ $0x000c002a, R12
MOVQ $0x000d002a, R13
MOVQ $0x000e002a, R14
MOVQ $0x000f002a, R15
MOVQ $0x0005002a, SI
MOVQ $0x0006002a, DI
MOVQ $0x0007002a, R8
MOVQ $0x0008002a, R9
MOVQ $0x0009002a, R10
MOVQ $0x000a002a, R11
MOVQ $0x000b002a, R12
MOVQ $0x000c002a, R13
MOVQ $0x000d002a, R14
MOVQ $0x000e002a, R15
MOVQ $0x000f002a, BP
MOVW $0x0001, AX
MOVW $0x0002, CX
MOVW $0x0003, DX
MOVW $0x0004, BX
MOVW $0x0005, BP
MOVW $0x0006, SI
MOVW $0x0007, DI
MOVW $0x0008, R8
MOVW $0x0009, R9
MOVW $0x000a, R10
MOVW $0x000b, R11
MOVW $0x000c, R12
MOVW $0x000d, R13
MOVW $0x000e, R14
MOVW $0x000f, R15
MOVW $0x0005, SI
MOVW $0x0006, DI
MOVW $0x0007, R8
MOVW $0x0008, R9
MOVW $0x0009, R10
MOVW $0x000a, R11
MOVW $0x000b, R12
MOVW $0x000c, R13
MOVW $0x000d, R14
MOVW $0x000e, R15
MOVW $0x000f, BP
ADDW CX, AX
ADDW DX, AX
ADDW BX, AX
ADDW BP, AX
ADDW SI, AX
ADDW DI, AX
ADDW R8, AX
@@ -48,12 +47,12 @@ TEXT ·Masks(SB), NOSPLIT, $8-16
ADDW R13, AX
ADDW R14, AX
ADDW R15, AX
ADDW BP, AX
MOVW AX, ret+0(FP)
MOVW $0x0000, AX
MOVW $0x0000, CX
MOVW $0x0000, DX
MOVW $0x0000, BX
MOVW $0x0000, BP
MOVW $0x0000, SI
MOVW $0x0000, DI
MOVW $0x0000, R8
@@ -64,10 +63,10 @@ TEXT ·Masks(SB), NOSPLIT, $8-16
MOVW $0x0000, R13
MOVW $0x0000, R14
MOVW $0x0000, R15
MOVW $0x0000, BP
ADDQ CX, AX
ADDQ DX, AX
ADDQ BX, AX
ADDQ BP, AX
ADDQ SI, AX
ADDQ DI, AX
ADDQ R8, AX
@@ -78,6 +77,7 @@ TEXT ·Masks(SB), NOSPLIT, $8-16
ADDQ R13, AX
ADDQ R14, AX
ADDQ R15, AX
ADDQ BP, AX
SHRQ $0x10, AX
MOVQ AX, ret1+8(FP)
RET

View File

@@ -11,7 +11,6 @@ TEXT ·Upper32(SB), NOSPLIT, $8-8
MOVQ $0x9e77d78aacb8cbcc, CX
MOVQ $0x9e77d78aacb8cbcc, DX
MOVQ $0x9e77d78aacb8cbcc, BX
MOVQ $0x9e77d78aacb8cbcc, BP
MOVQ $0x9e77d78aacb8cbcc, SI
MOVQ $0x9e77d78aacb8cbcc, DI
MOVQ $0x9e77d78aacb8cbcc, R8
@@ -22,10 +21,10 @@ TEXT ·Upper32(SB), NOSPLIT, $8-8
MOVQ $0x9e77d78aacb8cbcc, R13
MOVQ $0x9e77d78aacb8cbcc, R14
MOVQ $0x9e77d78aacb8cbcc, R15
MOVQ $0x9e77d78aacb8cbcc, BP
MOVQ $0x9e77d78aacb8cbcc, CX
MOVQ $0x9e77d78aacb8cbcc, DX
MOVQ $0x9e77d78aacb8cbcc, BX
MOVQ $0x9e77d78aacb8cbcc, BP
MOVQ $0x9e77d78aacb8cbcc, SI
MOVQ $0x9e77d78aacb8cbcc, DI
MOVQ $0x9e77d78aacb8cbcc, R8
@@ -36,10 +35,10 @@ TEXT ·Upper32(SB), NOSPLIT, $8-8
MOVQ $0x9e77d78aacb8cbcc, R13
MOVQ $0x9e77d78aacb8cbcc, R14
MOVQ $0x9e77d78aacb8cbcc, R15
MOVQ $0x9e77d78aacb8cbcc, BP
MOVQ $0x9e77d78aacb8cbcc, CX
MOVQ $0x9e77d78aacb8cbcc, DX
MOVQ $0x9e77d78aacb8cbcc, BX
MOVQ $0x9e77d78aacb8cbcc, BP
MOVQ $0x9e77d78aacb8cbcc, SI
MOVQ $0x9e77d78aacb8cbcc, DI
MOVQ $0x9e77d78aacb8cbcc, R8
@@ -50,26 +49,26 @@ TEXT ·Upper32(SB), NOSPLIT, $8-8
MOVQ $0x9e77d78aacb8cbcc, R13
MOVQ $0x9e77d78aacb8cbcc, R14
MOVQ $0x9e77d78aacb8cbcc, R15
MOVQ $0x9e77d78aacb8cbcc, BP
// Iteration 1.
MOVL $0x00000001, CX
MOVL $0x00000002, DX
MOVL $0x00000003, BX
MOVL $0x00000004, BP
MOVL $0x00000005, SI
MOVL $0x00000006, DI
MOVL $0x00000007, R8
MOVL $0x00000008, R9
MOVL $0x00000009, R10
MOVL $0x0000000a, R11
MOVL $0x0000000b, R12
MOVL $0x0000000c, R13
MOVL $0x0000000d, R14
MOVL $0x0000000e, R15
MOVL $0x00000004, SI
MOVL $0x00000005, DI
MOVL $0x00000006, R8
MOVL $0x00000007, R9
MOVL $0x00000008, R10
MOVL $0x00000009, R11
MOVL $0x0000000a, R12
MOVL $0x0000000b, R13
MOVL $0x0000000c, R14
MOVL $0x0000000d, R15
MOVL $0x0000000e, BP
ADDQ CX, AX
ADDQ DX, AX
ADDQ BX, AX
ADDQ BP, AX
ADDQ SI, AX
ADDQ DI, AX
ADDQ R8, AX
@@ -80,26 +79,26 @@ TEXT ·Upper32(SB), NOSPLIT, $8-8
ADDQ R13, AX
ADDQ R14, AX
ADDQ R15, AX
ADDQ BP, AX
// Iteration 2.
MOVL $0x0000000f, CX
MOVL $0x00000010, DX
MOVL $0x00000011, BX
MOVL $0x00000012, BP
MOVL $0x00000013, SI
MOVL $0x00000014, DI
MOVL $0x00000015, R8
MOVL $0x00000016, R9
MOVL $0x00000017, R10
MOVL $0x00000018, R11
MOVL $0x00000019, R12
MOVL $0x0000001a, R13
MOVL $0x0000001b, R14
MOVL $0x0000001c, R15
MOVL $0x00000012, SI
MOVL $0x00000013, DI
MOVL $0x00000014, R8
MOVL $0x00000015, R9
MOVL $0x00000016, R10
MOVL $0x00000017, R11
MOVL $0x00000018, R12
MOVL $0x00000019, R13
MOVL $0x0000001a, R14
MOVL $0x0000001b, R15
MOVL $0x0000001c, BP
ADDQ CX, AX
ADDQ DX, AX
ADDQ BX, AX
ADDQ BP, AX
ADDQ SI, AX
ADDQ DI, AX
ADDQ R8, AX
@@ -110,26 +109,26 @@ TEXT ·Upper32(SB), NOSPLIT, $8-8
ADDQ R13, AX
ADDQ R14, AX
ADDQ R15, AX
ADDQ BP, AX
// Iteration 3.
MOVL $0x0000001d, CX
MOVL $0x0000001e, DX
MOVL $0x0000001f, BX
MOVL $0x00000020, BP
MOVL $0x00000021, SI
MOVL $0x00000022, DI
MOVL $0x00000023, R8
MOVL $0x00000024, R9
MOVL $0x00000025, R10
MOVL $0x00000026, R11
MOVL $0x00000027, R12
MOVL $0x00000028, R13
MOVL $0x00000029, R14
MOVL $0x0000002a, R15
MOVL $0x00000020, SI
MOVL $0x00000021, DI
MOVL $0x00000022, R8
MOVL $0x00000023, R9
MOVL $0x00000024, R10
MOVL $0x00000025, R11
MOVL $0x00000026, R12
MOVL $0x00000027, R13
MOVL $0x00000028, R14
MOVL $0x00000029, R15
MOVL $0x0000002a, BP
ADDQ CX, AX
ADDQ DX, AX
ADDQ BX, AX
ADDQ BP, AX
ADDQ SI, AX
ADDQ DI, AX
ADDQ R8, AX
@@ -140,6 +139,7 @@ TEXT ·Upper32(SB), NOSPLIT, $8-8
ADDQ R13, AX
ADDQ R14, AX
ADDQ R15, AX
ADDQ BP, AX
// Store result and return.
MOVQ AX, ret+0(FP)

File diff suppressed because it is too large Load Diff