pass: de-prioritize base pointer in register allocation (#184)
Updates #156
This commit is contained in:
committed by
GitHub
parent
f295bde84c
commit
c32f24fb1e
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user