mirror of
				https://github.com/jart/cosmopolitan.git
				synced 2025-10-27 03:16:44 +00:00 
			
		
		
		
	Port a lot more code to AARCH64
- Introduce epoll_pwait() - Rewrite -ftrapv and ffs() libraries in C code - Use more FreeBSD code in math function library - Get significantly more tests passing on qemu-aarch64 - Fix many Musl long double functions that were broken on AARCH64
This commit is contained in:
		
							parent
							
								
									91791e9f38
								
							
						
					
					
						commit
						550b52abf6
					
				
					 158 changed files with 6018 additions and 3499 deletions
				
			
		
							
								
								
									
										0
									
								
								third_party/python/.python/this-is-a-kludge.txt
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								third_party/python/.python/this-is-a-kludge.txt
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
								
								
									
										9
									
								
								third_party/python/Include/yoink.h
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								third_party/python/Include/yoink.h
									
										
									
									
										vendored
									
									
								
							|  | @ -1,10 +1,19 @@ | |||
| #ifndef COSMOPOLITAN_THIRD_PARTY_PYTHON_INCLUDE_YOINK_H_ | ||||
| #define COSMOPOLITAN_THIRD_PARTY_PYTHON_INCLUDE_YOINK_H_ | ||||
| 
 | ||||
| #ifdef __x86_64__ | ||||
| #define PYTHON_YOINK(s)             \ | ||||
|   __asm__(".section .yoink\n\t"     \ | ||||
|           "nopl\t\"pyc:" s "\"\n\t" \ | ||||
|           ".previous") | ||||
| #elif defined(__aarch64__) | ||||
| #define PYTHON_YOINK(s)           \ | ||||
|   __asm__(".section .yoink\n\t"   \ | ||||
|           "bl\t\"pyc:" s "\"\n\t" \ | ||||
|           ".previous") | ||||
| #else | ||||
| #error "architecture unsupported" | ||||
| #endif /* __x86_64__ */ | ||||
| 
 | ||||
| #define PYTHON_PROVIDE(s)             \ | ||||
|   __asm__(".section .yoink\n"         \ | ||||
|  |  | |||
							
								
								
									
										
											BIN
										
									
								
								third_party/python/Lib/.zip.o
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								third_party/python/Lib/.zip.o
									
										
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										10
									
								
								third_party/python/Python/cosmomodule.c
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								third_party/python/Python/cosmomodule.c
									
										
									
									
										vendored
									
									
								
							|  | @ -53,9 +53,11 @@ PYTHON_PROVIDE("cosmo.crc32c"); | |||
| PYTHON_PROVIDE("cosmo.syscount"); | ||||
| PYTHON_PROVIDE("cosmo.popcount"); | ||||
| PYTHON_PROVIDE("cosmo.decimate"); | ||||
| PYTHON_PROVIDE("cosmo.ftrace"); | ||||
| #ifdef __x86_64__ | ||||
| PYTHON_PROVIDE("cosmo.getcpucore"); | ||||
| PYTHON_PROVIDE("cosmo.getcpunode"); | ||||
| PYTHON_PROVIDE("cosmo.ftrace"); | ||||
| #endif /* __x86_64__ */ | ||||
| 
 | ||||
| PyDoc_STRVAR(cosmo_doc, | ||||
| "Cosmopolitan Libc Module\n\
 | ||||
|  | @ -103,6 +105,8 @@ PyDoc_STRVAR(getcpucore_doc, | |||
| --\n\n\ | ||||
| Returns 0-indexed CPU core on which process is currently scheduled."); | ||||
| 
 | ||||
| #ifdef __x86_64__ | ||||
| 
 | ||||
| static PyObject * | ||||
| cosmo_getcpucore(PyObject *self, PyObject *noargs) | ||||
| { | ||||
|  | @ -120,6 +124,8 @@ cosmo_getcpunode(PyObject *self, PyObject *noargs) | |||
|     return PyLong_FromUnsignedLong(TSC_AUX_NODE(rdpid())); | ||||
| } | ||||
| 
 | ||||
| #endif /* __x86_64__ */ | ||||
| 
 | ||||
| PyDoc_STRVAR(crc32c_doc, | ||||
| "crc32c($module, bytes, init=0)\n\
 | ||||
| --\n\n\ | ||||
|  | @ -332,8 +338,10 @@ static PyMethodDef cosmo_methods[] = { | |||
|     {"syscount", cosmo_syscount, METH_NOARGS, syscount_doc}, | ||||
|     {"popcount", cosmo_popcount, METH_VARARGS, popcount_doc}, | ||||
|     {"decimate", cosmo_decimate, METH_VARARGS, decimate_doc}, | ||||
| #ifdef __x86_64__ | ||||
|     {"getcpucore", cosmo_getcpucore, METH_NOARGS, getcpucore_doc}, | ||||
|     {"getcpunode", cosmo_getcpunode, METH_NOARGS, getcpunode_doc}, | ||||
| #endif /* __x86_64__ */ | ||||
| #ifdef __PG__ | ||||
|     {"ftrace", cosmo_ftrace, METH_NOARGS, ftrace_doc}, | ||||
| #endif | ||||
|  |  | |||
							
								
								
									
										2
									
								
								third_party/python/Python/pymath.c
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								third_party/python/Python/pymath.c
									
										
									
									
										vendored
									
									
								
							|  | @ -34,6 +34,4 @@ unsigned short _Py_get_387controlword(void) { | |||
| void _Py_set_387controlword(unsigned short cw) { | ||||
|     __asm__ __volatile__ ("fldcw %0" : : "m" (cw)); | ||||
| } | ||||
| #else | ||||
| #error wut | ||||
| #endif | ||||
|  |  | |||
							
								
								
									
										9
									
								
								third_party/python/pyconfig.h
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								third_party/python/pyconfig.h
									
										
									
									
										vendored
									
									
								
							|  | @ -6,14 +6,17 @@ | |||
| 
 | ||||
| #define STDC_HEADERS                    1 | ||||
| #define HAVE_LONG_DOUBLE                1 | ||||
| #define HAVE_GCC_ASM_FOR_X64            1 | ||||
| #define HAVE_GCC_ASM_FOR_X87            1 | ||||
| #define HAVE_GCC_UINT128_T              1 | ||||
| #define HAVE_STDARG_PROTOTYPES          1 | ||||
| #define HAVE_BUILTIN_ATOMIC             1 | ||||
| #define HAVE_COMPUTED_GOTOS             1 | ||||
| #define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1 | ||||
| 
 | ||||
| #ifdef __x86_64__ | ||||
| #define HAVE_GCC_ASM_FOR_X64 1 | ||||
| #define HAVE_GCC_ASM_FOR_X87 1 | ||||
| #endif | ||||
| 
 | ||||
| #define HAVE_ACOSH         1 | ||||
| #define HAVE_ASINH         1 | ||||
| #define HAVE_ATANH         1 | ||||
|  | @ -100,7 +103,7 @@ | |||
| #define HAVE_DECL_RTLD_NOW      1 | ||||
| 
 | ||||
| #define HAVE_GETSID        1 | ||||
| #define HAVE_GETEUID        1 | ||||
| #define HAVE_GETEUID       1 | ||||
| #define HAVE_GETTIMEOFDAY  1 | ||||
| #define HAVE_GETUID        1 | ||||
| #define HAVE_GETNAMEINFO   1 | ||||
|  |  | |||
							
								
								
									
										1894
									
								
								third_party/python/python.mk
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1894
									
								
								third_party/python/python.mk
									
										
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue