Commit 51cf8ba0 authored by JeffZhao's avatar JeffZhao Committed by Andy Polyakov
Browse files

engines/asm/e_padlock*: add support for Zhaoxin's x86 platform



VIA and Shanghai United Investment Co.,Ltd. found Shanghai ZhaoXin,
which is a fabless x86 CPU IC design company. ZhaoXin has issued
ZX-C, ZX-D x86 processors, which have 'Shanghai' CPU vendor id.

Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
Reviewed-by: default avatarMatt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5640)
parent ec4c3891
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -73,11 +73,20 @@ $chunk="ebx";
	&cpuid	();
	&xor	("eax","eax");
	&cmp	("ebx","0x".unpack("H*",'tneC'));
	&jne	(&label("noluck"));
	&jne	(&label("zhaoxin"));
	&cmp	("edx","0x".unpack("H*",'Hrua'));
	&jne	(&label("noluck"));
	&cmp	("ecx","0x".unpack("H*",'slua'));
	&jne	(&label("noluck"));
	&jmp	(&label("zhaoxinEnd"));
&set_label("zhaoxin");
	&cmp	("ebx","0x".unpack("H*",'hS  '));
	&jne	(&label("noluck"));
	&cmp	("edx","0x".unpack("H*",'hgna'));
	&jne	(&label("noluck"));
	&cmp	("ecx","0x".unpack("H*",'  ia'));
	&jne	(&label("noluck"));
&set_label("zhaoxinEnd");
	&mov	("eax",0xC0000000);
	&cpuid	();
	&mov	("edx","eax");
+10 −1
Original line number Diff line number Diff line
@@ -57,11 +57,20 @@ padlock_capability:
	cpuid
	xor	%eax,%eax
	cmp	\$`"0x".unpack("H*",'tneC')`,%ebx
	jne	.Lnoluck
	jne	.Lzhaoxin
	cmp	\$`"0x".unpack("H*",'Hrua')`,%edx
	jne	.Lnoluck
	cmp	\$`"0x".unpack("H*",'slua')`,%ecx
	jne	.Lnoluck
	jmp	.LzhaoxinEnd
.Lzhaoxin:
	cmp	\$`"0x".unpack("H*",'hS  ')`,%ebx
	jne	.Lnoluck
	cmp	\$`"0x".unpack("H*",'hgna')`,%edx
	jne	.Lnoluck
	cmp	\$`"0x".unpack("H*",'  ia')`,%ecx
	jne	.Lnoluck
.LzhaoxinEnd:
	mov	\$0xC0000000,%eax
	cpuid
	mov	%eax,%edx