 9bdcbe0447
			
		
	
	9bdcbe0447
	
	
	
		
			
			Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| // Copied from S2 implementation.
 | |
| 
 | |
| //go:build !appengine && !noasm && gc && !noasm
 | |
| 
 | |
| #include "textflag.h"
 | |
| 
 | |
| // func matchLen(a []byte, b []byte) int
 | |
| // Requires: BMI
 | |
| TEXT ·matchLen(SB), NOSPLIT, $0-56
 | |
| 	MOVQ a_base+0(FP), AX
 | |
| 	MOVQ b_base+24(FP), CX
 | |
| 	MOVQ a_len+8(FP), DX
 | |
| 
 | |
| 	// matchLen
 | |
| 	XORL SI, SI
 | |
| 	CMPL DX, $0x08
 | |
| 	JB   matchlen_match4_standalone
 | |
| 
 | |
| matchlen_loopback_standalone:
 | |
| 	MOVQ  (AX)(SI*1), BX
 | |
| 	XORQ  (CX)(SI*1), BX
 | |
| 	TESTQ BX, BX
 | |
| 	JZ    matchlen_loop_standalone
 | |
| 
 | |
| #ifdef GOAMD64_v3
 | |
| 	TZCNTQ BX, BX
 | |
| #else
 | |
| 	BSFQ BX, BX
 | |
| #endif
 | |
| 	SARQ $0x03, BX
 | |
| 	LEAL (SI)(BX*1), SI
 | |
| 	JMP  gen_match_len_end
 | |
| 
 | |
| matchlen_loop_standalone:
 | |
| 	LEAL -8(DX), DX
 | |
| 	LEAL 8(SI), SI
 | |
| 	CMPL DX, $0x08
 | |
| 	JAE  matchlen_loopback_standalone
 | |
| 
 | |
| matchlen_match4_standalone:
 | |
| 	CMPL DX, $0x04
 | |
| 	JB   matchlen_match2_standalone
 | |
| 	MOVL (AX)(SI*1), BX
 | |
| 	CMPL (CX)(SI*1), BX
 | |
| 	JNE  matchlen_match2_standalone
 | |
| 	LEAL -4(DX), DX
 | |
| 	LEAL 4(SI), SI
 | |
| 
 | |
| matchlen_match2_standalone:
 | |
| 	CMPL DX, $0x02
 | |
| 	JB   matchlen_match1_standalone
 | |
| 	MOVW (AX)(SI*1), BX
 | |
| 	CMPW (CX)(SI*1), BX
 | |
| 	JNE  matchlen_match1_standalone
 | |
| 	LEAL -2(DX), DX
 | |
| 	LEAL 2(SI), SI
 | |
| 
 | |
| matchlen_match1_standalone:
 | |
| 	CMPL DX, $0x01
 | |
| 	JB   gen_match_len_end
 | |
| 	MOVB (AX)(SI*1), BL
 | |
| 	CMPB (CX)(SI*1), BL
 | |
| 	JNE  gen_match_len_end
 | |
| 	INCL SI
 | |
| 
 | |
| gen_match_len_end:
 | |
| 	MOVQ SI, ret+48(FP)
 | |
| 	RET
 |