From 5c0a5db4bdc11a85129cd0b56b12b398c7a8bb2f Mon Sep 17 00:00:00 2001 From: marco Date: Sat, 23 Mar 2019 14:41:24 +0000 Subject: [PATCH] --- Merging r41640 into '.': U rtl/bsd/ostypes.inc --- Recording mergeinfo for merge of r41640 into '.': U . --- Merging r41642 into '.': G rtl/bsd/ostypes.inc --- Recording mergeinfo for merge of r41642 into '.': G . --- Merging r41643 into '.': G rtl/bsd/ostypes.inc --- Recording mergeinfo for merge of r41643 into '.': G . --- Merging r41645 into '.': U rtl/openbsd/i386/prt0.as U rtl/openbsd/i386/cprt0.as U rtl/openbsd/x86_64/gprt0.as U rtl/openbsd/x86_64/prt0.as U rtl/openbsd/x86_64/cprt0.as --- Recording mergeinfo for merge of r41645 into '.': G . --- Merging r41649 into '.': G rtl/openbsd/i386/prt0.as G rtl/openbsd/i386/cprt0.as G rtl/openbsd/x86_64/prt0.as G rtl/openbsd/x86_64/cprt0.as --- Recording mergeinfo for merge of r41649 into '.': G . --- Merging r41653 into '.': U rtl/openbsd/x86_64/prt0.as --- Recording mergeinfo for merge of r41653 into '.': G . --- Merging r41654 into '.': G rtl/openbsd/x86_64/prt0.as --- Recording mergeinfo for merge of r41654 into '.': G . --- Merging r41659 into '.': G rtl/openbsd/x86_64/prt0.as --- Recording mergeinfo for merge of r41659 into '.': G . --- Merging r41660 into '.': G rtl/openbsd/x86_64/prt0.as --- Recording mergeinfo for merge of r41660 into '.': G . --- Merging r41669 into '.': U rtl/openbsd/x86_64/cprt0.as --- Recording mergeinfo for merge of r41669 into '.': G . --- Merging r41670 into '.': G rtl/openbsd/x86_64/cprt0.as --- Recording mergeinfo for merge of r41670 into '.': G . --- Merging r41671 into '.': G rtl/openbsd/x86_64/cprt0.as --- Recording mergeinfo for merge of r41671 into '.': G . --- Merging r41672 into '.': U tests/test/cg/obj/openbsd/x86_64/cpptcl2.o U tests/test/cg/obj/openbsd/x86_64/tcext3.o U tests/test/cg/obj/openbsd/x86_64/tcext4.o U tests/test/cg/obj/openbsd/x86_64/tcext5.o U tests/test/cg/obj/openbsd/x86_64/tcext6.o U tests/test/cg/obj/openbsd/x86_64/ctest.o U tests/test/cg/obj/openbsd/x86_64/cpptcl1.o --- Recording mergeinfo for merge of r41672 into '.': G . --- Merging r41677 into '.': U rtl/openbsd/termios.inc --- Recording mergeinfo for merge of r41677 into '.': G . --- Merging r41678 into '.': U packages/rtl-console/src/unix/keyboard.pp --- Recording mergeinfo for merge of r41678 into '.': G . --- Merging r41682 into '.': U rtl/openbsd/i386/prt0.as --- Recording mergeinfo for merge of r41682 into '.': G . --- Merging r41683 into '.': G rtl/openbsd/i386/prt0.as --- Recording mergeinfo for merge of r41683 into '.': G . --- Merging r41685 into '.': G rtl/openbsd/i386/prt0.as --- Recording mergeinfo for merge of r41685 into '.': G . --- Merging r41686 into '.': G rtl/openbsd/i386/cprt0.as --- Recording mergeinfo for merge of r41686 into '.': G . --- Merging r41687 into '.': G rtl/openbsd/i386/cprt0.as --- Recording mergeinfo for merge of r41687 into '.': G . --- Merging r41688 into '.': U tests/test/cg/obj/openbsd/i386/tcext3.o U tests/test/cg/obj/openbsd/i386/tcext4.o U tests/test/cg/obj/openbsd/i386/tcext5.o U tests/test/cg/obj/openbsd/i386/tcext6.o U tests/test/cg/obj/openbsd/i386/ctest.o U tests/test/cg/obj/openbsd/i386/cpptcl1.o U tests/test/cg/obj/openbsd/i386/cpptcl2.o --- Recording mergeinfo for merge of r41688 into '.': G . --- Merging r41692 into '.': A rtl/openbsd/si_dll.pp A rtl/openbsd/i386/si_c.inc A rtl/openbsd/i386/si_prc.inc A rtl/openbsd/i386/si_dll.inc A rtl/openbsd/si_c.pp A rtl/openbsd/si_prc.pp A rtl/openbsd/x86_64/si_c.inc A rtl/openbsd/x86_64/si_prc.inc A rtl/openbsd/x86_64/si_dll.inc A rtl/openbsd/si_intf.inc --- Recording mergeinfo for merge of r41692 into '.': G . # revisions: 41640,41642,41643,41645,41649,41653,41654,41659,41660,41669,41670,41671,41672,41677,41678,41682,41683,41685,41686,41687,41688,41692 r41640 | nickysn | 2019-03-08 17:14:40 +0100 (Fri, 08 Mar 2019) | 2 lines Changed paths: M /trunk/rtl/bsd/ostypes.inc * Adjust for OpenBSD struct changes in the 'stat' structure. Based on OpenBSD ports patch patch-fpcsrc_rtl_bsd_ostypes_inc r41642 | nickysn | 2019-03-08 17:22:53 +0100 (Fri, 08 Mar 2019) | 2 lines Changed paths: M /trunk/rtl/bsd/ostypes.inc * Adjust for OpenBSD struct changes in the 'dirent' structure. Based on OpenBSD ports patch patch-fpcsrc_rtl_bsd_ostypes_inc r41643 | nickysn | 2019-03-08 17:26:40 +0100 (Fri, 08 Mar 2019) | 2 lines Changed paths: M /trunk/rtl/bsd/ostypes.inc * Adjust for OpenBSD struct changes in the 'dir' structure. Based on OpenBSD ports patch patch-fpcsrc_rtl_bsd_ostypes_inc r41645 | nickysn | 2019-03-09 15:33:25 +0100 (Sat, 09 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/i386/cprt0.as M /trunk/rtl/openbsd/i386/prt0.as M /trunk/rtl/openbsd/x86_64/cprt0.as M /trunk/rtl/openbsd/x86_64/gprt0.as M /trunk/rtl/openbsd/x86_64/prt0.as * applied all the OpenBSD startup code patches from the OpenBSD ports tree r41649 | nickysn | 2019-03-09 16:40:34 +0100 (Sat, 09 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/i386/cprt0.as M /trunk/rtl/openbsd/i386/prt0.as M /trunk/rtl/openbsd/x86_64/cprt0.as M /trunk/rtl/openbsd/x86_64/prt0.as - removed duplicated ".note.openbsd.ident" sections, committed erroneously in r41645 r41653 | nickysn | 2019-03-09 17:54:39 +0100 (Sat, 09 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/x86_64/prt0.as * PIC fixes in OpenBSD's prt0.as for x86_64 r41654 | nickysn | 2019-03-09 17:58:25 +0100 (Sat, 09 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/x86_64/prt0.as * fixed bug, due to a typo in the previous commit r41659 | nickysn | 2019-03-09 18:48:28 +0100 (Sat, 09 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/x86_64/prt0.as * use PIC in the eh_frame section as well r41660 | nickysn | 2019-03-09 19:30:31 +0100 (Sat, 09 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/x86_64/prt0.as * changed the type of the .eh_frame section to 'unwind' r41669 | nickysn | 2019-03-10 17:08:46 +0100 (Sun, 10 Mar 2019) | 4 lines Changed paths: M /trunk/rtl/openbsd/x86_64/cprt0.as * some PIC fixes in OpenBSD x86_64 cprt0.as * use the correct section type for .eh_frame r41670 | nickysn | 2019-03-10 17:20:33 +0100 (Sun, 10 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/x86_64/cprt0.as * more PIC fixes in OpenBSD's x86_64 cprt0.as r41671 | nickysn | 2019-03-10 17:53:47 +0100 (Sun, 10 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/x86_64/cprt0.as * more PIC fixes in OpenBSD's x86_64 cprt0.as r41672 | nickysn | 2019-03-10 18:38:07 +0100 (Sun, 10 Mar 2019) | 5 lines Changed paths: M /trunk/tests/test/cg/obj/openbsd/x86_64/cpptcl1.o M /trunk/tests/test/cg/obj/openbsd/x86_64/cpptcl2.o M /trunk/tests/test/cg/obj/openbsd/x86_64/ctest.o M /trunk/tests/test/cg/obj/openbsd/x86_64/tcext3.o M /trunk/tests/test/cg/obj/openbsd/x86_64/tcext4.o M /trunk/tests/test/cg/obj/openbsd/x86_64/tcext5.o M /trunk/tests/test/cg/obj/openbsd/x86_64/tcext6.o * recompiled the OpenBSD x86_64 C and C++ .o test files; GCC version is the same (so, no need to update readme.txt), but OpenBSD's default compile settings have changed (PIC is enabled by default) r41677 | nickysn | 2019-03-11 17:53:00 +0100 (Mon, 11 Mar 2019) | 1 line Changed paths: M /trunk/rtl/openbsd/termios.inc * OpenBSD termios interface updates r41678 | nickysn | 2019-03-11 19:08:21 +0100 (Mon, 11 Mar 2019) | 4 lines Changed paths: M /trunk/packages/rtl-console/src/unix/keyboard.pp * use stdin instead of stdout to switch the console to raw mode; this fixes keyboard input in OpenBSD r41682 | nickysn | 2019-03-12 02:33:06 +0100 (Tue, 12 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/i386/prt0.as * partial PIC conversion of the i386 OpenBSD startup code r41683 | nickysn | 2019-03-12 02:58:11 +0100 (Tue, 12 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/i386/prt0.as * more PIC fixes in the i386 OpenBSD startup code r41685 | nickysn | 2019-03-12 14:55:54 +0100 (Tue, 12 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/i386/prt0.as * more PIC fixes in i386 OpenBSD's startup code. prt0.as is now completely PIC r41686 | nickysn | 2019-03-12 15:56:27 +0100 (Tue, 12 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/i386/cprt0.as * PIC fixes in cprt0 for i386-openbsd r41687 | nickysn | 2019-03-12 17:00:12 +0100 (Tue, 12 Mar 2019) | 3 lines Changed paths: M /trunk/rtl/openbsd/i386/cprt0.as * yet another PIC fix in cprt0 for i386-openbsd r41688 | nickysn | 2019-03-12 17:04:57 +0100 (Tue, 12 Mar 2019) | 3 lines Changed paths: M /trunk/tests/test/cg/obj/openbsd/i386/cpptcl1.o M /trunk/tests/test/cg/obj/openbsd/i386/cpptcl2.o M /trunk/tests/test/cg/obj/openbsd/i386/ctest.o M /trunk/tests/test/cg/obj/openbsd/i386/tcext3.o M /trunk/tests/test/cg/obj/openbsd/i386/tcext4.o M /trunk/tests/test/cg/obj/openbsd/i386/tcext5.o M /trunk/tests/test/cg/obj/openbsd/i386/tcext6.o * the i386-openbsd C and C++ test modules recompiled with -fPIC r41692 | nickysn | 2019-03-13 16:59:36 +0100 (Wed, 13 Mar 2019) | 3 lines Changed paths: A /trunk/rtl/openbsd/i386/si_c.inc A /trunk/rtl/openbsd/i386/si_dll.inc A /trunk/rtl/openbsd/i386/si_prc.inc A /trunk/rtl/openbsd/si_c.pp A /trunk/rtl/openbsd/si_dll.pp A /trunk/rtl/openbsd/si_intf.inc A /trunk/rtl/openbsd/si_prc.pp A /trunk/rtl/openbsd/x86_64/si_c.inc A /trunk/rtl/openbsd/x86_64/si_dll.inc A /trunk/rtl/openbsd/x86_64/si_prc.inc + initial (only a stub for now) implementation of pascal-based startup code units for OpenBSD git-svn-id: branches/fixes_3_2@41782 - --- .gitattributes | 10 ++++ packages/rtl-console/src/unix/keyboard.pp | 4 +- rtl/bsd/ostypes.inc | 24 +++++++-- rtl/openbsd/i386/cprt0.as | 54 ++++++++++++++------- rtl/openbsd/i386/prt0.as | 50 +++++++++++++------ rtl/openbsd/i386/si_c.inc | 17 +++++++ rtl/openbsd/i386/si_dll.inc | 17 +++++++ rtl/openbsd/i386/si_prc.inc | 17 +++++++ rtl/openbsd/si_c.pp | 27 +++++++++++ rtl/openbsd/si_dll.pp | 27 +++++++++++ rtl/openbsd/si_intf.inc | 22 +++++++++ rtl/openbsd/si_prc.pp | 28 +++++++++++ rtl/openbsd/termios.inc | 33 +++++++------ rtl/openbsd/x86_64/cprt0.as | 24 ++++----- rtl/openbsd/x86_64/gprt0.as | 8 +++ rtl/openbsd/x86_64/prt0.as | 14 +++--- rtl/openbsd/x86_64/si_c.inc | 17 +++++++ rtl/openbsd/x86_64/si_dll.inc | 17 +++++++ rtl/openbsd/x86_64/si_prc.inc | 17 +++++++ tests/test/cg/obj/openbsd/i386/cpptcl1.o | Bin 1905 -> 3188 bytes tests/test/cg/obj/openbsd/i386/cpptcl2.o | Bin 696 -> 1084 bytes tests/test/cg/obj/openbsd/i386/ctest.o | Bin 5064 -> 6680 bytes tests/test/cg/obj/openbsd/i386/tcext3.o | Bin 2993 -> 2965 bytes tests/test/cg/obj/openbsd/i386/tcext4.o | Bin 1899 -> 1807 bytes tests/test/cg/obj/openbsd/i386/tcext5.o | Bin 5268 -> 5496 bytes tests/test/cg/obj/openbsd/i386/tcext6.o | Bin 4164 -> 5332 bytes tests/test/cg/obj/openbsd/x86_64/cpptcl1.o | Bin 4064 -> 4320 bytes tests/test/cg/obj/openbsd/x86_64/cpptcl2.o | Bin 1312 -> 1568 bytes tests/test/cg/obj/openbsd/x86_64/ctest.o | Bin 9992 -> 9952 bytes tests/test/cg/obj/openbsd/x86_64/tcext3.o | Bin 5688 -> 5568 bytes tests/test/cg/obj/openbsd/x86_64/tcext4.o | Bin 3184 -> 3064 bytes tests/test/cg/obj/openbsd/x86_64/tcext5.o | Bin 7600 -> 7472 bytes tests/test/cg/obj/openbsd/x86_64/tcext6.o | Bin 7656 -> 8912 bytes 33 files changed, 357 insertions(+), 70 deletions(-) create mode 100644 rtl/openbsd/i386/si_c.inc create mode 100644 rtl/openbsd/i386/si_dll.inc create mode 100644 rtl/openbsd/i386/si_prc.inc create mode 100644 rtl/openbsd/si_c.pp create mode 100644 rtl/openbsd/si_dll.pp create mode 100644 rtl/openbsd/si_intf.inc create mode 100644 rtl/openbsd/si_prc.pp create mode 100644 rtl/openbsd/x86_64/si_c.inc create mode 100644 rtl/openbsd/x86_64/si_dll.inc create mode 100644 rtl/openbsd/x86_64/si_prc.inc diff --git a/.gitattributes b/.gitattributes index 44e7a7feea..f43bcad63c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10087,6 +10087,9 @@ rtl/openbsd/i386/bsyscall.inc svneol=native#text/plain rtl/openbsd/i386/cprt0.as svneol=native#text/plain rtl/openbsd/i386/dllprt0.as svneol=native#text/plain rtl/openbsd/i386/prt0.as svneol=native#text/plain +rtl/openbsd/i386/si_c.inc svneol=native#text/plain +rtl/openbsd/i386/si_dll.inc svneol=native#text/plain +rtl/openbsd/i386/si_prc.inc svneol=native#text/plain rtl/openbsd/i386/sighnd.inc svneol=native#text/plain rtl/openbsd/osdefs.inc svneol=native#text/plain rtl/openbsd/pmutext.inc svneol=native#text/plain @@ -10094,6 +10097,10 @@ rtl/openbsd/pthread.inc svneol=native#text/plain rtl/openbsd/ptypes.inc svneol=native#text/plain rtl/openbsd/rtldefs.inc svneol=native#text/plain rtl/openbsd/setsysnr.inc svneol=native#text/plain +rtl/openbsd/si_c.pp svneol=native#text/plain +rtl/openbsd/si_dll.pp svneol=native#text/plain +rtl/openbsd/si_intf.inc svneol=native#text/plain +rtl/openbsd/si_prc.pp svneol=native#text/plain rtl/openbsd/signal.inc svneol=native#text/plain rtl/openbsd/syscalls.inc svneol=native#text/plain rtl/openbsd/sysconst.inc svneol=native#text/plain @@ -10114,6 +10121,9 @@ rtl/openbsd/x86_64/crt0.s svneol=native#text/plain rtl/openbsd/x86_64/dllprt0.as svneol=native#text/plain rtl/openbsd/x86_64/gprt0.as svneol=native#text/plain rtl/openbsd/x86_64/prt0.as svneol=native#text/plain +rtl/openbsd/x86_64/si_c.inc svneol=native#text/plain +rtl/openbsd/x86_64/si_dll.inc svneol=native#text/plain +rtl/openbsd/x86_64/si_prc.inc svneol=native#text/plain rtl/openbsd/x86_64/sighnd.inc svneol=native#text/plain rtl/os2/Makefile svneol=native#text/plain rtl/os2/Makefile.fpc svneol=native#text/plain diff --git a/packages/rtl-console/src/unix/keyboard.pp b/packages/rtl-console/src/unix/keyboard.pp index 111f5a604a..8fc0d01d14 100644 --- a/packages/rtl-console/src/unix/keyboard.pp +++ b/packages/rtl-console/src/unix/keyboard.pp @@ -118,7 +118,7 @@ procedure SetRawMode(b:boolean); var Tio:Termios; begin - TCGetAttr(1,Tio); + TCGetAttr(0,Tio); if b then begin {Standard output now needs #13#10.} @@ -132,7 +132,7 @@ begin {Standard output normally needs just a linefeed.} settextlineending(output,#10); end; - TCsetattr(1,TCSANOW,Tio); + TCsetattr(0,TCSANOW,Tio); end; {$ifdef linux} diff --git a/rtl/bsd/ostypes.inc b/rtl/bsd/ostypes.inc index ade70de60d..b80fd150c8 100644 --- a/rtl/bsd/ostypes.inc +++ b/rtl/bsd/ostypes.inc @@ -87,6 +87,9 @@ TYPE st_qspare1 : cint64; // was recursive change detect st_qspare2 : cint64; {$else dragonfly} +{$ifdef openbsd} + st_mode : mode_t; // inode protection mode +{$endif openbsd} st_dev : dev_t; // inode's device {$ifdef darwin_new_iostructs} st_mode : mode_t; // inode protection mode @@ -99,16 +102,15 @@ TYPE st_ino : ino_t; // inode's number {$else not netbsd} st_ino : ino_t; // inode's number +{$ifndef openbsd} st_mode : mode_t; // inode protection mode +{$endif not openbsd} {$endif not netbsd} st_nlink : nlink_t; // number of hard links {$endif} st_uid : uid_t; // user ID of the file's owner st_gid : gid_t; // group ID of the file's group st_rdev : dev_t; // device type -{$ifdef openbsd} - st_padd0 : cint; -{$endif} st_atime : time_t; // time of last access st_atimensec : clong; // nsec of last access st_mtime : time_t; // time of last data modification @@ -154,6 +156,16 @@ TYPE d_unused2 : cuint32; // reserved d_name : array[0..255] of char; // name, null terminated end; +{$elseif defined(openbsd)} + dirent = record + d_fileno : ino_t; + d_off : off_t; + d_reclen : cuint16; // length of this record + d_type : cuint8; // file type, see below + d_namlen : cuint8; // length of string in d_name + d_padding : array[0..3] of cuint8; + d_name : array[0..(255 + 1)-1] of char; // name must be no longer than this + end; {$else} dirent = record d_fileno : cuint32; // file number of entry @@ -185,6 +197,11 @@ TYPE dd_size : clong; // amount of data returned by getdirentries dd_buf : pchar; // data buffer dd_len : cint; // size of data buffer +{$ifdef openbsd} + dd_curpos : off_t; + dd_lock : pointer; + dd_rewind : clong; +{$else not openbsd} {$ifdef netbsdpowerpc} dd_pad1 : cint; dd_seek : cint64; // magic cookie returned by getdirentries @@ -197,6 +214,7 @@ TYPE __dd_lock : pthread_mutex_t; // for thread locking __dd_td : pointer; // telldir position recording {$endif} +{$endif not openbsd} end; TDir = dir; pDir = ^dir; diff --git a/rtl/openbsd/i386/cprt0.as b/rtl/openbsd/i386/cprt0.as index 114ef4a92e..dd2c332ba1 100644 --- a/rtl/openbsd/i386/cprt0.as +++ b/rtl/openbsd/i386/cprt0.as @@ -68,10 +68,15 @@ ___start: subl $16,%esp pushl %esi pushl %ebx + call fpc_geteipasecx + addl $_GLOBAL_OFFSET_TABLE_,%ecx + movl %ecx,%edi movl 12(%ebp),%esi movl 16(%ebp),%eax - movl %eax,environ - movl %eax,operatingsystem_parameter_envp + movl environ@GOT(%edi),%ecx + movl %eax,(%ecx) + movl operatingsystem_parameter_envp@GOT(%edi),%ecx + movl %eax,(%ecx) movl (%esi),%ebx testl %ebx,%ebx je .L3 @@ -79,61 +84,76 @@ ___start: pushl $47 pushl %ebx call _strrchr - movl %eax,__progname + movl __progname@GOT(%edi),%ecx + movl %eax,(%ecx) addl $16,%esp testl %eax,%eax jne .L4 - movl %ebx,__progname + movl %ebx,(%ecx) jmp .L5 .p2align 4,,7 .L4: incl %eax - movl %eax,__progname + movl %eax,(%ecx) .L5: - movl $__progname_storage,%edx + movl __progname_storage@GOT(%edi),%edx jmp .L12 .p2align 4,,7 .L9: movb (%eax),%al movb %al,(%edx) - incl __progname + movl __progname@GOT(%edi),%ecx + incl (%ecx) incl %edx .L12: - movl __progname,%eax + movl __progname@GOT(%edi),%ecx + movl (%ecx),%eax cmpb $0,(%eax) je .L7 - cmpl $__progname_storage+255,%edx + movl __progname_storage@GOT(%edi),%ecx + addl $255,%ecx + cmpl %ecx,%edx jb .L9 .L7: movb $0,(%edx) - movl $__progname_storage,__progname + pushl %eax + movl __progname_storage@GOT(%edi),%eax + movl __progname@GOT(%edi),%ecx + movl %eax,(%ecx) + popl %eax .L3: - call __init +# call __init subl $16,%esp pushl %eax movl 8(%ebp),%eax - movl %eax,operatingsystem_parameter_argc - movl %esi,operatingsystem_parameter_argv + movl operatingsystem_parameter_argc@GOT(%edi),%ecx + movl %eax,(%ecx) + movl operatingsystem_parameter_argv@GOT(%edi),%ecx + movl %esi,(%ecx) popl %eax # pushl environ # pushl %esi # pushl 8(%ebp) + movl ___fpucw@GOT(%edi),%ecx finit fwait - fldcw ___fpucw + fldcw (%ecx) xorl %ebp,%ebp call main pushl %eax - call exit + call exit@PLT .p2align 2,0x90 .globl _haltproc .type _haltproc,@function _haltproc: - mov $1,%eax - movzwl operatingsystem_result,%ebx + call fpc_geteipasebx + addl $_GLOBAL_OFFSET_TABLE_,%ebx + movl operatingsystem_result@GOT(%ebx),%ebx + movzwl (%ebx),%ebx pushl %ebx + mov $1,%eax call .Lactualsyscall addl $4,%esp jmp _haltproc diff --git a/rtl/openbsd/i386/prt0.as b/rtl/openbsd/i386/prt0.as index 83703458e3..64fbb4097c 100644 --- a/rtl/openbsd/i386/prt0.as +++ b/rtl/openbsd/i386/prt0.as @@ -64,10 +64,15 @@ ___start: subl $16,%esp pushl %esi pushl %ebx + call fpc_geteipasecx + addl $_GLOBAL_OFFSET_TABLE_,%ecx + movl %ecx,%edi movl 12(%ebp),%esi movl 16(%ebp),%eax - movl %eax,environ - movl %eax,operatingsystem_parameter_envp + movl environ@GOT(%edi),%ecx + movl %eax,(%ecx) + movl operatingsystem_parameter_envp@GOT(%edi),%ecx + movl %eax,(%ecx) movl (%esi),%ebx testl %ebx,%ebx je .L3 @@ -75,48 +80,60 @@ ___start: pushl $47 pushl %ebx call _strrchr - movl %eax,__progname + movl __progname@GOT(%edi),%ecx + movl %eax,(%ecx) addl $16,%esp testl %eax,%eax jne .L4 - movl %ebx,__progname + movl %ebx,(%ecx) jmp .L5 .p2align 4,,7 .L4: incl %eax - movl %eax,__progname + movl %eax,(%ecx) .L5: - movl $__progname_storage,%edx + movl __progname_storage@GOT(%edi),%edx jmp .L12 .p2align 4,,7 .L9: movb (%eax),%al movb %al,(%edx) - incl __progname + movl __progname@GOT(%edi),%ecx + incl (%ecx) incl %edx .L12: - movl __progname,%eax + movl __progname@GOT(%edi),%ecx + movl (%ecx),%eax cmpb $0,(%eax) je .L7 - cmpl $__progname_storage+255,%edx + movl __progname_storage@GOT(%edi),%ecx + addl $255,%ecx + cmpl %ecx,%edx jb .L9 .L7: movb $0,(%edx) - movl $__progname_storage,__progname + pushl %eax + movl __progname_storage@GOT(%edi),%eax + movl __progname@GOT(%edi),%ecx + movl %eax,(%ecx) + popl %eax .L3: # call __init subl $16,%esp pushl %eax movl 8(%ebp),%eax - movl %eax,operatingsystem_parameter_argc - movl %esi,operatingsystem_parameter_argv + movl operatingsystem_parameter_argc@GOT(%edi),%ecx + movl %eax,(%ecx) + movl operatingsystem_parameter_argv@GOT(%edi),%ecx + movl %esi,(%ecx) popl %eax # pushl environ # pushl %esi # pushl 8(%ebp) + movl ___fpucw@GOT(%edi),%ecx finit fwait - fldcw ___fpucw + fldcw (%ecx) xorl %ebp,%ebp call main # pushl %eax @@ -128,9 +145,12 @@ ___start: .type _haltproc,@function _haltproc: - mov $1,%eax - movzwl operatingsystem_result,%ebx + call fpc_geteipasebx + addl $_GLOBAL_OFFSET_TABLE_,%ebx + movl operatingsystem_result@GOT(%ebx),%ebx + movzwl (%ebx),%ebx pushl %ebx + mov $1,%eax call .Lactualsyscall addl $4,%esp jmp _haltproc diff --git a/rtl/openbsd/i386/si_c.inc b/rtl/openbsd/i386/si_c.inc new file mode 100644 index 0000000000..ff272a25b5 --- /dev/null +++ b/rtl/openbsd/i386/si_c.inc @@ -0,0 +1,17 @@ +{ + This file is part of the Free Pascal run time library. + Copyright (c) 2019 by Free Pascal development team + + This file implements parts of the startup code for OpenBSD + programs that link to the C library. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + + diff --git a/rtl/openbsd/i386/si_dll.inc b/rtl/openbsd/i386/si_dll.inc new file mode 100644 index 0000000000..7d43e0aea1 --- /dev/null +++ b/rtl/openbsd/i386/si_dll.inc @@ -0,0 +1,17 @@ +{ + This file is part of the Free Pascal run time library. + Copyright (c) 2019 by Free Pascal development team + + This file implements parts of the startup code for OpenBSD + shared object (.so) libraries. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + + diff --git a/rtl/openbsd/i386/si_prc.inc b/rtl/openbsd/i386/si_prc.inc new file mode 100644 index 0000000000..ffba986bc8 --- /dev/null +++ b/rtl/openbsd/i386/si_prc.inc @@ -0,0 +1,17 @@ +{ + This file is part of the Free Pascal run time library. + Copyright (c) 2019 by Free Pascal development team + + This file implements parts of the startup code for OpenBSD + programs that don't link to the C library. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + + diff --git a/rtl/openbsd/si_c.pp b/rtl/openbsd/si_c.pp new file mode 100644 index 0000000000..6e957eb4f5 --- /dev/null +++ b/rtl/openbsd/si_c.pp @@ -0,0 +1,27 @@ +{ + This file is part of the Free Pascal run time library. + Copyright (c) 2019 by Free Pascal development team + + This file implements the startup code for OpenBSD programs that + link to the C library. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + +unit si_c; + +interface + +{$i si_intf.inc} + +implementation + +{$i si_c.inc} + +end. diff --git a/rtl/openbsd/si_dll.pp b/rtl/openbsd/si_dll.pp new file mode 100644 index 0000000000..f8a5cde2c3 --- /dev/null +++ b/rtl/openbsd/si_dll.pp @@ -0,0 +1,27 @@ +{ + This file is part of the Free Pascal run time library. + Copyright (c) 2019 by Free Pascal development team + + This file implements the startup code for OpenBSD shared object + (.so) libraries. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + +unit si_dll; + +interface + +{$i si_intf.inc} + +implementation + +{$i si_dll.inc} + +end. diff --git a/rtl/openbsd/si_intf.inc b/rtl/openbsd/si_intf.inc new file mode 100644 index 0000000000..fd7985b26f --- /dev/null +++ b/rtl/openbsd/si_intf.inc @@ -0,0 +1,22 @@ +{ + This file is part of the Free Pascal run time library. + Copyright (c) 2019 by Free Pascal development team + + This file implements the public interface parts of the startup + code for OpenBSD programs or shared object (.so) libraries. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + +{$SMARTLINK OFF} + +var + operatingsystem_parameter_envp: ppchar; public name 'operatingsystem_parameter_envp'; + operatingsystem_parameter_argc: longint; public name 'operatingsystem_parameter_argc'; + operatingsystem_parameter_argv: ppchar; public name 'operatingsystem_parameter_argv'; diff --git a/rtl/openbsd/si_prc.pp b/rtl/openbsd/si_prc.pp new file mode 100644 index 0000000000..ca2e5889d9 --- /dev/null +++ b/rtl/openbsd/si_prc.pp @@ -0,0 +1,28 @@ +{ + This file is part of the Free Pascal run time library. + Copyright (c) 2019 by Free Pascal development team + + This file implements the startup code for OpenBSD programs that + don't link to the C library. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + + +unit si_prc; + +interface + +{$i si_intf.inc} + +implementation + +{$i si_prc.inc} + +end. diff --git a/rtl/openbsd/termios.inc b/rtl/openbsd/termios.inc index 9fa121f132..1413145a0f 100644 --- a/rtl/openbsd/termios.inc +++ b/rtl/openbsd/termios.inc @@ -55,17 +55,16 @@ Type type - Termios = packed record + tcflag_t = cuint; + cc_t = cuchar; + Termios = record c_iflag, c_oflag, c_cflag, - c_lflag : longint; -// c_line : char; - c_cc : array[0..NCCS-1] of byte; - {$IFDEF BSD} + c_lflag : tcflag_t; + c_cc : array[0..NCCS-1] of cc_t; c_ispeed, - c_ospeed : longint; - {$endif} + c_ospeed : cint; end; TTermios=Termios; @@ -92,6 +91,7 @@ CONST IXON = $200; { enable output flow control } IXOFF = $400; { enable input flow control } IXANY = $800; { any char will restart after stop } + IUCLC = $1000; { translate upper to lower case } IMAXBEL = $2000; { ring bell on input queue full } { @@ -101,6 +101,10 @@ CONST ONLCR = $2; { map NL to CR-NL (ala CRMOD) } OXTABS = $4; { expand tabs to spaces } ONOEOT = $8; { discard EOT's (^D) on output) } + OCRNL = $10; { map CR to NL } + OLCUC = $20; { translate lower case to upper case } + ONOCR = $40; { No CR output at column 0 } + ONLRET = $80; { NL performs the CR function } { * Control flags - hardware control of terminal @@ -117,13 +121,11 @@ CONST PARODD = $2000; { odd parity, else even } HUPCL = $4000; { hang up on last close } CLOCAL = $8000; { ignore modem status lines } - CCTS_OFLOW = $10000; { CTS flow control of output } - CRTS_IFLOW = $20000; { RTS flow control of input } - CRTSCTS = (CCTS_OFLOW or CRTS_IFLOW); - CDTR_IFLOW = $40000; { DTR flow control of input } - CDSR_OFLOW = $80000; { DSR flow control of output } - CCAR_OFLOW = $100000; { DCD flow control of output } - MDMBUF = $100000; { old name for CCAR_OFLOW } + CRTSCTS = $10000; { RTS/CTS full-duplex flow control } + CRTS_IFLOW = CRTSCTS; { XXX compat } + CCTS_OFLOW = CRTSCTS; { XXX compat } + MDMBUF = $100000; { DTR/DCD hardware flow control } + CHWFLOW = MDMBUF or CRTSCTS; { all types of hw flow control } { * "Local" flags - dumping ground for other state @@ -144,9 +146,10 @@ CONST ICANON = $100; { canonicalize input lines } ALTWERASE = $200; { use alternate WERASE algorithm } IEXTEN = $400; { enable DISCARD and LNEXT } - EXTPROC = $800; { external processing } + EXTPROC = $800; { external processing } TOSTOP = $400000; { stop background jobs from output } FLUSHO = $800000; { output being flushed (state) } + XCASE = $1000000; { canonical upper/lower case } NOKERNINFO = $2000000; { no kernel output from VSTATUS } PENDIN =$20000000; { XXX retype pending input (state) } NOFLSH =$80000000; { don't flush after interrupt } diff --git a/rtl/openbsd/x86_64/cprt0.as b/rtl/openbsd/x86_64/cprt0.as index 83e1823837..4a9761440b 100644 --- a/rtl/openbsd/x86_64/cprt0.as +++ b/rtl/openbsd/x86_64/cprt0.as @@ -76,7 +76,8 @@ ___start: addq $1, %rax movq %rax, __progname(%rip) .L6: - movq $__progname_storage, -16(%rbp) + leaq __progname_storage(%rip), %rax + movq %rax, -16(%rbp) jmp .L7 .L8: movq __progname(%rip), %rcx @@ -91,21 +92,20 @@ ___start: movzbl (%rax), %eax testb %al, %al je .L9 - movq $__progname_storage+255, %rax + leaq __progname_storage+255(%rip), %rax cmpq %rax, -16(%rbp) jb .L8 .L9: + leaq __progname_storage(%rip), %rax + movq %rax, __progname(%rip) movq -16(%rbp), %rax movb $0, (%rax) - movq $__progname_storage, __progname(%rip) .L2: - movl $_mcleanup, %edi + movq _mcleanup@GOTPCREL(%rip), %rdi call atexit - movl $_etext, %eax - movq %rax, %rsi - movl $_eprol, %eax - movq %rax, %rdi - call monstartup + movq _etext@GOTPCREL(%rip), %rsi + leaq _eprol(%rip), %rdi + call monstartup@plt movl $0, %eax call _init movq environ(%rip), %rdx @@ -184,7 +184,7 @@ _strrchr: .comm operatingsystem_parameter_envp,8,8 .comm operatingsystem_parameter_argc,8,8 .comm operatingsystem_parameter_argv,8,8 - .section .eh_frame,"a",@progbits + .section .eh_frame,"a",@unwind .Lframe1: .long .LECIE1-.LSCIE1 .LSCIE1: @@ -207,7 +207,7 @@ _strrchr: .long .LEFDE1-.LASFDE1 .LASFDE1: .long .LASFDE1-.Lframe1 - .long .LFB9 + .long .LFB9-. .long .LFE9-.LFB9 .uleb128 0x0 .byte 0x4 @@ -226,7 +226,7 @@ _strrchr: .long .LEFDE3-.LASFDE3 .LASFDE3: .long .LASFDE3-.Lframe1 - .long .LFB10 + .long .LFB10-. .long .LFE10-.LFB10 .uleb128 0x0 .byte 0x4 diff --git a/rtl/openbsd/x86_64/gprt0.as b/rtl/openbsd/x86_64/gprt0.as index 50a46bcff0..43fffbacff 100644 --- a/rtl/openbsd/x86_64/gprt0.as +++ b/rtl/openbsd/x86_64/gprt0.as @@ -1,3 +1,11 @@ + .section ".note.openbsd.ident", "a" + .p2align 2 + .long 8 + .long 4 + .long 1 + .ascii "OpenBSD\0" + .long 0 + .previous .file "crt0.c" .globl __progname .section .rodata diff --git a/rtl/openbsd/x86_64/prt0.as b/rtl/openbsd/x86_64/prt0.as index 90fe6675f6..0903a170e6 100644 --- a/rtl/openbsd/x86_64/prt0.as +++ b/rtl/openbsd/x86_64/prt0.as @@ -76,7 +76,8 @@ ___start: addq $1, %rax movq %rax, __progname(%rip) .L6: - movq $__progname_storage, -16(%rbp) + leaq __progname_storage(%rip), %rax + movq %rax, -16(%rbp) jmp .L7 .L8: movq __progname(%rip), %rcx @@ -91,13 +92,14 @@ ___start: movzbl (%rax), %eax testb %al, %al je .L9 - movq $__progname_storage+255, %rax + leaq __progname_storage+255(%rip), %rax cmpq %rax, -16(%rbp) jb .L8 .L9: + leaq __progname_storage(%rip), %rax + movq %rax, __progname(%rip) movq -16(%rbp), %rax movb $0, (%rax) - movq $__progname_storage, __progname(%rip) .L2: # movl $_mcleanup, %edi # call atexit @@ -185,7 +187,7 @@ _strrchr: .comm operatingsystem_parameter_envp,8,8 .comm operatingsystem_parameter_argc,8,8 .comm operatingsystem_parameter_argv,8,8 - .section .eh_frame,"a",@progbits + .section .eh_frame,"a",@unwind .Lframe1: .long .LECIE1-.LSCIE1 .LSCIE1: @@ -208,7 +210,7 @@ _strrchr: .long .LEFDE1-.LASFDE1 .LASFDE1: .long .LASFDE1-.Lframe1 - .long .LFB9 + .long .LFB9-. .long .LFE9-.LFB9 .uleb128 0x0 .byte 0x4 @@ -227,7 +229,7 @@ _strrchr: .long .LEFDE3-.LASFDE3 .LASFDE3: .long .LASFDE3-.Lframe1 - .long .LFB10 + .long .LFB10-. .long .LFE10-.LFB10 .uleb128 0x0 .byte 0x4 diff --git a/rtl/openbsd/x86_64/si_c.inc b/rtl/openbsd/x86_64/si_c.inc new file mode 100644 index 0000000000..ff272a25b5 --- /dev/null +++ b/rtl/openbsd/x86_64/si_c.inc @@ -0,0 +1,17 @@ +{ + This file is part of the Free Pascal run time library. + Copyright (c) 2019 by Free Pascal development team + + This file implements parts of the startup code for OpenBSD + programs that link to the C library. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + + diff --git a/rtl/openbsd/x86_64/si_dll.inc b/rtl/openbsd/x86_64/si_dll.inc new file mode 100644 index 0000000000..7d43e0aea1 --- /dev/null +++ b/rtl/openbsd/x86_64/si_dll.inc @@ -0,0 +1,17 @@ +{ + This file is part of the Free Pascal run time library. + Copyright (c) 2019 by Free Pascal development team + + This file implements parts of the startup code for OpenBSD + shared object (.so) libraries. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + + diff --git a/rtl/openbsd/x86_64/si_prc.inc b/rtl/openbsd/x86_64/si_prc.inc new file mode 100644 index 0000000000..ffba986bc8 --- /dev/null +++ b/rtl/openbsd/x86_64/si_prc.inc @@ -0,0 +1,17 @@ +{ + This file is part of the Free Pascal run time library. + Copyright (c) 2019 by Free Pascal development team + + This file implements parts of the startup code for OpenBSD + programs that don't link to the C library. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + + diff --git a/tests/test/cg/obj/openbsd/i386/cpptcl1.o b/tests/test/cg/obj/openbsd/i386/cpptcl1.o index 6aa9a6132984512edd5a4d5011b4989f32461d12..022a51f18166b2c6cca12ae9f9d8528f7f130b9a 100644 GIT binary patch literal 3188 zcmb_dO=w(I6u$FgP3!c>5=x+5q_m(5eIzfFbRwlx?QvDgV@R;5I8Kt8Ov^MK<~`%2 z2t}ljak>c7ow%};F1m1$UArilMFm%yg^Mh*NTFahLY9I0eQ)mV+>H0xF1&E&-0ytn zo^$Sb@140R7e7j+Qp&89%BUVvYCYR!^09hb<<$O|e;s(b{q)=IBftI<>%oo;EX#Hx zs^U=pGi`a+kz7nB#Cg?|rjnOOHJ<;s9>#q-(>b)E+MdR>2HUdPk)gJ1SvOZ| zNH;rmBPgoW*8}^0py7Bfn_W(k8z#gW;LrPq25zN4IQSa2>v_yR3}bLBe$ZV{X-Ujf{A3FoH3 zeV=fy0q!0+SDm-PttQ005AIO{w+3!4f!hT4TLQNWZask;N-MRIz~#ZQr>>p_;IwB$v{YIgQQmy>`j?G3 z(<}Xa0k1bL&ph_L?*YguNLI^nXk1C{gK+VCn4m!~`f;%zG-n8~BFl%^_`QWa^SsP& z1U?Lbmd1(eo6AWRHUFZS4(~h@;qJOmRYvRFe&$8`V z_4jj|%)IDc*P7Xrf%)tX5VK>wl~KHLZ}H#ppoZ+}QN%yhqvLxNfXQ**kiP_N<}&dd z@M#EVBk>Jr^X?I^0P`Ii)I4Wb05S0%VQ*$D{eK5ufS7uoVQ*$Ac{aq%P2yu{n3lXhIc*DYf0B>3NFJLpjcs_$?zGLwx zfOjp-S!iYx{VxKWc|=?VHZzF$8(^+1zI(MjzJ8VK~m+ zs4ObyeEGMlFEfq+V^VWi^Ab6%<8swuoscDm^^BAq)`El%>!e)SYn_O%HX<#Tc~q({ zvoCWl^O(%K%z63BWgeFR{j|H>EoDLiXP7e*IO7x~=xbFs&ZGpc;{6dRx?13mO3@X^ z_oe78)E|?gt582LMQ7r1sYO@&o?l$5k1H=0XRGSJ{>1Q(9)+YaR5&Bjcz4fh{h8J+ zt?y|4v)23u>Cf+Psp!m{Xpv{T5oBMPbl`|cS!$&)>B$Hw7#wN QeXZBD-qadpsT79%KS?AjYybcN literal 1905 zcmbtS&ubG=5PmVKMyML4ieL|^9;~2CcC-2AHIBW65EgT(NJ!GeG$d{4E-~>UQV*`V z^e+%W@Z`yppm?blJ&A%R4Gy^L;b(?aX_7i*lC(fq;-t zKm^5KB*cR;u!jZnA}ppv(f@pHa|7@7tD}t#9#c8Zs_lp>Q#;5H8o%HF4+>Xy@A)CDzonOco&qZy+GR&wIi=|>I zGZPiUaQkhqT!Hu2M!q2iDOqNCO_@p;vOBhZw2QSEfRYRfd>MQJggxl(hzY^&_L z364zaic;x%uUG2S*4)*Va%fbbwaL@432JKCB=t3Hipm-`O|FK` z(DEdk9Ih6lo{l!DuA?nl($R6M>S&v8=;#C$aGvTZk48ySK`WD@f>tL@g&jvV(#cRk uH@p=iM|T94Nsdm(vdGa6YQ@RX4QkosXg{2whS%J2f5TBNtlV{~b@2yk8mnvo diff --git a/tests/test/cg/obj/openbsd/i386/cpptcl2.o b/tests/test/cg/obj/openbsd/i386/cpptcl2.o index 3943de992452331146c5135494706d0c137b3723..054e10ef5a8b5912d45435fd89bcbdc172f238dd 100644 GIT binary patch literal 1084 zcma)5O-mb56upy4HENWYm7t3XMY|{uku3Z|)M{5!L{bDdei;+*IDu9+CmXS2T?);=6tr>}ic`%xq+3~DMk^bSJ59wZTqYJCTl1Lb+ucH3(P zVbnPGYe)LjYt4wNhK-YE-05A%9#EqelDpx(2cbjIY^vk1TwfoQ!Wj#(mmI`VCZWW+ z3?Q3{>6`{PjSTy|g_{9}d>JT(eC60n4#W2a;eeH&K!I<;IruKbvEMQ@zF$iC2eILR z+wm9R+k7Q}%wG7t7(VXK%m7zzpjA4luouOif$;4aaK| delta 270 zcmdnPv4eGjg7p*z2rvOt8Vno^tPG)@Ph$^H0Fw+1?#|9u3L5Typ_&RNdPaJN3PuJ7 z<_6}5mI@OW>#-;2=jNv7l}r|7RGzHB$SEofG=>p~*&wDefQ;pyT*#=*>Hrb}vVUUexr9l8H3rBt1@q=G3GiM4Dx3fmVFzNi$vc^(SyPx8 y7(#&Z;*&oxX)!S}Oy*%W(B}n8g8(ZK3jqyR1M?t+0FbfnoW6 diff --git a/tests/test/cg/obj/openbsd/i386/ctest.o b/tests/test/cg/obj/openbsd/i386/ctest.o index 420360d5dcd2a4be9a105ffbfab7a7c0e7cb0042..9b77ef61e8aa450dad371d0c611c19dbb87a4f60 100644 GIT binary patch literal 6680 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 B#vcFx diff --git a/tests/test/cg/obj/openbsd/i386/tcext3.o b/tests/test/cg/obj/openbsd/i386/tcext3.o index 8b57649d127e6954da41bd3178e5ad3c4e301443..35217ab365f10cfffcf24790f4516bea01c9dfb7 100644 GIT binary patch literal 2965 zcmbW2O-vI(6vt=V0t;!_LK;GlP%wTFV;YtMq6edis~6!`yeL>uV@xzktHA?mY+}-^ z8cxQ82TvY6n3x!PD-;c&C-mY;<3SCH9yB%vIiUYHv(ru^NS#UEy!V@V|MzA;+P&@^ zJ!}{Tlfz(sRwBk0tHn+acb%+;1z0@uDg8BMO*^KQTgtr7|B7UmGOu1f_tvvmpV@F7 zvN|g_dne$_%;i@jQsp{kImb<82G`5PPSy$D|Eq$xZp=Ygzn;)B-FT2UJT`<2a4(zg zWYC%(2wAy2Z*F{RSWUkO4Ue3lYf+Q3NSgVdr1^%osNA?|W!DM)yLB-^R18;Mkp$U+ z@TTW3>!1om$EHd;y7BOaHxKn`8`WH=*^Re~s9jvPIOMkCAw|y}>-WS%TX0tBO8cm(4 zsjJo0)oJSLHFcJzE~Kez(bTnR>LQxDc2$R;cQkqRd@3;tpBfkbtc+5pCsHhWDv?UC z=x8!Ye+CteEy$wpoA+5`^j$k60dW9EqXR~HegcdKN)EBi+lknOZI;)dvEm5{cJLtPKB@4t&12+F_w#Og_i z{S0mRXvW-#E_4=(B{w1Ng0;bDzZHHEMtQ_r;fG-@9(Te|z@$Ekcna15qkMWkPhs^Q z?}ML#ZTI*9{6~e4Ag;wl_QI2%dhZ9zdU5aw*!K31!%rzZ2F`;Idi&?#eYgz~k1xS@ zfT<4Er?X!H_j`O3{)xi3!Jier2X4cIllc$9Lkd3z-&Ob-cwXTgcunC&a35X@S?>+_ zg2L~>j}%@8zgPGNxCt+o)USaD6{dT6OW`m$r*H)PQ{i3UC|*`skEO=&ON~Xx*u_LL zY4f?8&oMst@VS@IeSF@-=YBr#<+I%-oKV|BZVSCF3fQ88ElR{h=15|Eyc7u;tqCPX uLQIj+QzS}IBu+w+I1NSOL=<_a;$f+acM!f>s$`c+b(ccrm@(yaG4=;ozL@F& literal 2993 zcmbW2T}TvB6vyxAnxk#)u59*6yG4|VO^&Nsy%f~si}sLg1ZlBaP?3GO6Bw95_OeVt zPtijUJp@7Y8174KZ9*URVjo0A1w9BtzVz|1g;f7@?_B4K1Ii4Xd(Q8k^FQ~@?C4y! z+V^Ri#^j~3a^?|Z4;G0`Gk0}NXB8}+n~029dZaL(dtLmU$c^X5x<_djmYOtNR!nbA%-A(N&BunQ=EZs?m`3VO*oo?N^5RQy= zL?eYFKTZ1(`*HZl>~tRK#|ul3#@?e_jZe2ur$cwT!;Tdd=e&r0JS>lymC1d{z0yRV zxKAGp?O&eni2F}Df4MlV*5@?uFee??{AQ;8V(hJBt#Hz7M3m%rICCHQjtw(|iIX<^ zoHRTYeQr(Dd-U8Yk^5HTSf$9w-U_@*Pc&*>Z$|kmIl;C0_vgxb*lpE)&|ri0_u{gjvC=$X@KTGd=KjzwjqyWFH@}nQ<&*XPD8G%`&6+Y+v8; zGdBIdSm?DHh4c+`KV6KzT^l4I4#DVJ2cx=j0$hib8e&bH~nt-+qW zWG;pc*^6>E>RMzGysRT%rtD8uGIj$SaQxnAz9_5;ruG}GMnBmEIVA*nm%1Nf-~V|T z>ZfLj)k%oe6Ny6%$MS0#)*9$(Hi{+JBCdzg??ZWdHWqA&%j@9}z?QpQ2Y(VK^#36*iTkP^q_GBX zUL<6+CzKQkF-1a8k!V4Yn1muR4Mk!iirlGq=$+yY!gsw+rq`;;3zacb%5*9AA3Cjo A4*&oF diff --git a/tests/test/cg/obj/openbsd/i386/tcext4.o b/tests/test/cg/obj/openbsd/i386/tcext4.o index d191de819bf8021a79ebfc9b6613826f0e749423..5b4b4ff357c1945e0799e25f463bdb22e55def65 100644 GIT binary patch literal 1807 zcmb`HJ4*vW5Xa|oXL4GYXrV&HL>p7cK^{IUEiPCDtYW1?9)ci(cvonl7OBGdDI}l4 z!a|4^!PYNeC5T!?NO9Qc%s$Ab3%Cn6|M~6C{uwU0xpqrM!!STD15D@>K*{1K1tuAY zfd%E}TjMJcxOV)`jz6@UkL{n-^Aq3gxLvC3xIHc*$!9WfLvx_saJv)bUc(KI#${++ zy#{VKDEI#564ByfYH_i&xJ0$M#I(5BT3p7pxWu)%B(%6pYjK&=;*!$hlJ2|Ux9fNp zCw`@h>Ys5vl9_*a?t@dW_!V%fo=0E$P%DX5G-INonr6#~DF8)`9GJ(P>f}*c9*9zj zi^%p6brVVrS&-inC1T0BM;eivsPz$mP28k@F=hQFP)G5Ryb?S2%;YgH6f%4zjN>{XX{! zZy-}!vVIG(sPH!Ojlw&~FADD>&)|!b_xF(x6s{w;6b8SB|FnWrgVT!VWm(Lzm}jxT e;xdb?EUvM*&SI7yWLG%xf*ik-=Vp1~mWMxPNP$8cM~Wf}V~`?6=1=a5q)1Y@ zviuN;H%OIqNRR?i@d#9i0t!cRg&c)%_IAX&L&~mn^UZH|_Pbr5wco?lWyf(yhC?a3 zBck1OGE-8LBbNrL+PY|mZsw<(IXr3|AKgr^|3;~KojnOV+;$Rn6X~&BO|-*as;}P( zJEPTZGweCduRZ76c{}X1tKHN8aT&1UlCt8Gw&F5m#bwxvi)+Q@p%s^m6_>0PmvJjD zQ&wE2t+;r1E<`Jp%958`d0n0HN`Ao)yh1)-&X-)S_qwqw2x?mH&X$oJ5YUcmRyWl94?UrY29Irqubq)g~m!RKK29(^y+ zW8Q!4H>tf?WNs9>yp!t-=$qq259wnakRtTQAkiBXhmrHycz;A=bzMB`)_h)b0^GwZv>@jL>r7jAK|pTH_n$eKY_k8n17pngP$S4FgS;N7Mqmy zK6uYy{;t0aUIPC$_$9c4ZOi&s;FiH_;4_2Yf*<2p(!UOVZ}2Agz+j5&__vn)I_=h? nC{VGWVo}ACigPNKRa{VUQN*AB0=}A{I zFu=#3pbhW|5)Ui zeUR+^*N5OpF&sIc=OzaXM`raR&%sinbMG8>0TF+`!>&S)d$F@G>&}v)z`;;X3_aX; zVQ$Z*eWAm?(zJKof+HolI^uN@`H%uV?sL4p-MccAVV#$C@rlm#L=oAIh$Ap+90AM; zyCE$;?7tEV_^;hG@~@|c^z^Xn+eLS@)QFZI)%l1XAI~3W~Cr>jzSZ( z?6iA)9QIWD z!=m)RJXhV@y=zBivf=(?l&g>X+>~(SGPVXaO+!iI6&fGyiX+D>H9n~GYK{NU73=Rz z4=+z`>`eEEQnh1zWGqA1#C@ey|PZG zs`PY7OI_B|-Ts~!JU7ePWj)<3>f}`|-K+Dfdb~H&->^p(%Kxw60X|J$;3jT!BxBV8 zpQ6c!r8=MTUunpvYuUx8GknUGNl&ql?(2Mdjw_C?c#D6(D!)sO|9~pLTaEvqD!(Ti zKV869eh#Vf=c(}@R^`uE<3FOxU!cZ+RF%Il8$Z5(*z$i&mEWtze_WNnNR9u5Dt~b{ ze%zq8{B)@Dm#Fb4Rr&qd_=7Y2PpR?;vhjyz@Sj!XUy_Xgc# zr(4#lZ=b62SIx%H-df*1_)BoG?(x@;eu}kh-}J?wXExmlPS@$dP#=qQe0VI`+ya?w z7xJK~wYMFOB->6WS!7>xvYAC%IyzXS{e%EC5lJKt)vl|J9B4}>PPQhJ2UEw7L|RU> z$bt3~sgraU=G5X?waB)Teh1SXUxfYwdYR@0I&>orx$pwk znS0SZ%~7MAn0pewh;@5OkTrI>iq za2UIpnCK@+jDA%=8VvVA0~XMhNVL(07H#DsXHvqEl%z=;(}?fQ%=We{*Xy{+&U?R| z_kQoqo7tJ&6Xb;*s;Vm1r7A^A4k^l)<-Dh!iI7sJlq!b#cQWgv#M4ja`Vw<$%r{7; z?!h%krcvDXd(RQK_x$%JnWALMyg2YrHK?XB4Tu`kS1#Sh;Bqijc~iuFW~u%~4*vl9 zdoK(_B4v=sN5w8ofF+VQi(&^$IVJ8z{Cs@;B@RD7HQW%{Q!uh%Smt1;LWUIaoLM|` z;a}?TueSWvi;zh9QWJ4Ih&)gNYIq#e_sUDjte=v~elp#cm|l*4lY9we*%Am@ereOl zc+crR@A&~%f2yZxG@}kw{ATKtW;9F5BsH?h%l^IlqPQ*=5|vD}OBL75=%g8UjAl0ur;^nv+n30CFlw6DDZ}a%pt_qzp~^nK zI)65As6SSWn(?%m$WW4|MkaZ=a__$VtT>D=K#9MfAl*s_U1L7FF*7j^iC4}iu8+~^ zIG+X_locwFCses)s1$^npBTANUPq{x7adieP-A8kM_e^O;^-KSkMpTYoAEp&hPe{O z^*Pd5GoJ=ED$S+MREW=1wS(-Soebvz0#hTvwcve=fz4h@uX#{O#W){Z@;KSvy@Bst zLCnjscZZg;cMFEK4hG!2LxuNl;lIw|k9&8B@7+%$ zTe!i5SBFGQlIhpS;Z0c|f4VO*UK8ImL8c~3@GSfD)(8q*ju^{d{L4%u3J&=8GYMI=%Mr1;C9^?x zY-R_^93}yobvjnYQ-fp{J8!R|WY&9bdkG$;Dw#`?Sv8rMRo|Fhmviy(8@t>0AuP($72dgdr4`lg+`S|fnQeJKPX6RaAsCn+IyT9sfFK+qd z&U;%%1GCLa%eHNsgQ1q4#^b^IaBWx%)Ws}XLr zv##gBE?@zWR$m3^R!r>f0J~>V5tn6$(u#>)jqs(Dh6h-KQn+!v`0<0-&gXwfQTA9Q z&}UNt*3GgO?H-l7Nit?Jk%^>&Ka0}qG zfa9WnC&&;CbCvQ1%4gmUpCwhScfuvDEbe9909Bg{0_*qP?k>xJ`VCbz*`0G z1NkrDW`X-bJ_9d-RgaGWp8|YV^nV7j0Ve){z+ZqoZNpy!p0VL?0q=&zc>pBV?+1`6 z8~z3GYFIp0|8>BHmtYusJq{u(FHID^J1>bPZ{W=Rpz^3gilv`9xAW8L4{-ObHV@t5cJ z#&hK+cL_dW@-o3E&Dez5KPhI8P3FbzKtld0*d@huaH_YhHq$NV(rnD4mC`mKS&nTsoPEdEgsRI?N|&G}9$0&35eAMzfU1bInW^4$aOKAY5H^hSOB;2PH7^2D3vQyS*hxr8c(4NvD!jLxg zF;OJGt(n0J6Kg@Av{-zo@jHdsZ$`9EaYP;KWWt)@No#`Py&OYSW_(8IH;?t_n6YNI zX(q1UWV1~-O+I7lH|HX^&lx#deRkO5)G@(x0mRMBz~1asMz+U?Jv*`4GNGul>fF+yuUu;~{*HUHhq3PRXhd z31qL_XZe&!&Su1nxb1#p@bZLQ8G`|e8oD@L<31akGWE0>92?*%QSU1sfS}&z6^73< zT<>#PF6(_|gu?3+jcPHPJZ0)1s#dU!VN-^c>Vcgm4*Oi9%$MEtX+Do_B6O@E+6-ne zS80+XW9@*9gyyp%6(8C+w+_74uFYk5PHkh)ICt5_40mOC+0~@YAD{uBeTNmS|(^QgfH#7+rda z8MH>3UVdgb&FjI|mCP)b3r6|x#wTz9;9sQe{l(qB$*8+6DYwLyve)yksvB^jj}WGb&#icQe7`%ZFOkLJW~ zlj_6J+eZbJY&}A|O%ffvkFh=&($vtH$+t(9o&K_@%-BvKcND?qlCxf8*Yk4{>YuY^ z;?9u}zsKsw7N|W5!{R&i?PyA`s~G)yn@jYIuR>8ja6RlF1yXs7;x-mMF;-}c#nhs6a0vS(@)?ZfIq10OTga(xBcG-ej2<*$?pf>a1UO( zifo%eH?Pyvo6o;9&>906qY2 zw|^1*w+=ZonsJ_1`mFc@*a}cP?c3* zZG9iJzBShOZtgL<_X5&IK>Dau7hl-&wOvA`gdGy9BveayOhS!>oe~1u6b2M3M*-z2 zpj-u%uYhtEP~IwGhct*>j7w|;xW>&`BVwz`c|&?9fTZ^tuoN5QEue?1%8_gw-={>}r*-zdqUcb()oh(1+(HO>LD zTMHyRACT;}0Lg9}$zj(@a@a)_KST(-6I2ho*MVgBGa%XhlH{B@JB5R){sThTU!r>0 F{|k#(HBkTn literal 4164 zcmdT{U2IfE6rL@sY+?0ob%Rx_^kGp@QhWOcHAD~?M8j(RxkgjhvXquK(w4MaQ#F;6 zO-;vo-5Qy`Wf3jM1BP zzWdEN=euXloI7{Bn{L_Ua=D0oxyS-C#|Vk%DodG!_S40 zU*Gct{8-XB+NXVdf2L-h=Kqti-#uws790J~b2_UE4#a>Z6@;(tZzz-5O+clv!h(Cb@Nr(KNF%7ssJ3eAe!6 zG>!(RwCxx>ZG1Fx^2c9dg%LL!G0*9EcYr+?aHnUo*=%>8aUfX)yO*QB zJv1Zh3qjNuWkY?3IL&ADyw;%8%$n)y%#g^UsnB%Pnjupm-5j%CM-Pn`w>sQ2B0zwlg_yjTD zeG3Js-_tqyi2KdWU7b@TQXp7%Vf+2M3g7R!EQE3s-F=bU2WSG@oE@Np7aNyq9BrRMj29j06Ap;=u(CjU z&2QN(UI%8OQ$*88<5jcU>Xw@^lcFYF3OPBLdf47#K0 zoI9|0d%!&syUI-piB~lr0mC62EFRwO-HW59%FT(hZ(T!q6VZ6S&QOQ=XG4r5L7&kZ zlLw9KSl;Oylt41G5;qv45=~J&8=ZCCbY%|dd6t2N7odzt;m;n|0R{RL4JCoj(>*iK!+1MIu*8q7mm=oZT$46(FuVC7N-=GA!CC z6`JiZbO26_9=ywzpVI;+4t{QVc@QUxcokUi(z&Lz{wj!XOb^8Yg3r-(icafk(X^O` z^wksauJYJ06I65a-kv?^?{?^^42 z7DehhBBW@0I1(mB+uGVlQEf|8Q(bdJ9P&4MErp}_U39Y!5Wndv^zS<{h3}rc?#Aet zCUFBFEX?6&nv55I;w!UE^94Y0?Q{l#+j_ zpCGuKEJDEDNN_VS=MVlj&8~eV?6<-G5K!Ddp!uV~=kXWN{5jz3_*V1I z_WlLH??vO;{6X+19J~blRd8Fc68vp&TW=ls7Y_f;;O8B@3fzO@+WIemmpS-W@U0Hs z0RE1H?*jkQ!8^dm!0qREfiJ?#V(XJgEl#D1qFU10(%!uN(dO+{;o4UoZ;n)y5g1y- zwUJFbTf(55aDUAd?bvnA%(IOT#glTTqVcVa;%i2S*$=sn=0H?@um_mm4c}x zOr=q(1Hv-AL_w*7G6m%dDio|zuv$T-0<&17sZk4=TFKN>rq(jGn5orD5%&o8B?pJe zevRL0?8dvEgZ_A5AolT)K@SE2Xm|1OAj1+2*?r~3jG7h%-fmR8J=13@g(n?_nUb$ z^FBPgcl6YkeX*G07E_5sZ(Bc|1EwbR({fbj*d`Q*_pG&FSWM+gF zwDX#`+iz$0-@g4CT$|Z1L5Ar@?nJbC@5K4gQuD&5*Zk^l3}0?8a5fmlYcBkQ**<>s zkhbk8^|4#ooQl;4`tKt+vU^8z#cVg~2g#-%`!DtmeAjnwkC9=B`V4YtALGNKFCvH5 zOTQedd+OInzY}|l|BZ=f+l-i> z=nFTf=lUb`nFxI`LcbiLUyIOhMCdmo^oe-H`bmGN$N6PQf6$^2J;T%Sm#zhc8R&yr z*jHEzO7%cF#X?X}&W!IXr&g*KoKhuUt`)A8XozYja|v{1C!fDkujl7WHUGx-LUk@! z$}bKp=SuCy!u(de_Y`Je{(g&(G_fT0cxR5oFF|AOkH8qO9oGp`E02Uv=}t1|c|1M_ z0-Dg)GFC+~j}>zM2~c2;?>avPb1@WM9gxCSq4?9nG4BW4odiMVgu3+J(4x_GC-D`= z^FImIDh<6^zeu1(PT8K!x90Qs3<$RPt%1;jdy@Sz$FmnpG!y?Ir*mf1dB|h2 z?HyXDDG=`;)XMNri2NxI<&M|A{!p$Hx3OkkQXsLp%IW;#0)gf1CJ4VUGueex`}j@vFmdkjSfo zpCVo-&iQ1B-zCm*zajpEu=k1I6a0JPtAhVX{Aa;`CH{-xe-Zy(@MpwZg2&;$<9c!b zu<^Q%5`P@xEj~*8so+z@|0QnTX&{%0_d|Sa=3NH;x4@6}VTA}A|4-HI{CqH5O*zo3 z{N?kLUzhygT(#i)V<@HcqO!iFUN?31jK#r-u2|@(4lHy`U$xM2y=0-Mb-_X>v~Qu4 zdTu)%H%lAVbsJ9UvJJbsXu~6V)`my*O&cE5S=i6+T@F(j*IBEZ(>iPQGoiC$t3p4M zI%`Yb9o9M97Pu*$v-xpdowFwDj_8~%QFm15tbxaLCAcci&!pkl~N(Xhm?YqYc5ij;;&Nb+jco*U`4%Tt}1iKjeJQlHHKt zTt_{@xsLMp3j3KRKMi5eb#z^DuA?o%?~u6hWuA@o%_&_!OxQ-49&UMrioa-np&%ELJorCNZ00kil literal 4064 zcmb`JO=whC6oBt!#$=kRjf%y#E=C&Y6zpT>W%AcTNzL3ki!=;_5wXH#GCz(oF(L0I zP6ARYq0G=Ovg$fukkEB^Ek!VkxD(xG8D*d@tajl-(0lGXClk-y$3yf&-aYR-zxQX( z%TIFR`>s$(&V(+%@?hx>l%8b73E^$Pkla5Z}2VbGU=tKp|#_0+!l z4b*=CvmyRgfd6iQK7tp@ufBfN`{hpu_?J-sp-=s*0s4)A_*V ztR!ztWBzGY806YNPOBGQ6X-7-@~j#d82rGF{7-ml@r{~IOTB|ZslTFmhwTxiU?pnP z9rRC=BhEaRY3*RT-s3qWFgWxEK)in7ru_GHGZ5luwy`|Fm!?OzPxnbKUchu`NQjo`U88i!|f20$jOIz3HhgLhCzHq z$q=VsQz3MZR`MEh3pv@}Mh^L55dT}r5a*1hZT!7xF(De~A1a#{WgW&3IVd zYgjMr9}HU8N#r{o-s36cj~Smp{uH_XMku+0yj$gmp}!3v6zAvNVl8Q@S>!KHj-D$! z?s%=>ID;T1<&wzfFW2k&`SOA@cdbyn;x6Zx5(ZOS&KT%`tQu%ax&}HZuNvr(TsF{Q zSuoHM=@{s!yz(X;(o0Lox(O#`#e{8HGT{MPG~txIZo-2ytM+sME_w;8{QaaxR1UyS1BQvK8yWgv4sV`<2r@r_a!W#`N diff --git a/tests/test/cg/obj/openbsd/x86_64/cpptcl2.o b/tests/test/cg/obj/openbsd/x86_64/cpptcl2.o index 62532a1d656c3d078f2ff8310323a488af3da64b..2a611506ac83aafb3bc76ba8f49ecdc9e559ac5a 100644 GIT binary patch literal 1568 zcmbtU%W4!+5UrlhV`3&@%u0w00}`_cm(i6X$VeW{LS&GLA)B^m(s{td8M?1w;>Mle z&b>d9Wgx43h#%k=Xr0?tW9R0Qg(>K+s&lHks;h4I*R40(wJ0K$h+fe@Pf?;)1#COG zO%0lJv9s*I?|lDtby?m)KXfrf(UmCT-2}eRh3NmHA(dw;KibKx~!+)2LrFWCsyuggNT4(j8((B~Z)%adkYS?foI%n#SMz%kAW>{0Q z_x8n3R@jX}S`^P=b@O3=>y&~&8bn);>HE>Q{hgMiK8`bXuCgWu@aj?Tc(}fg=3$RG HBPxFZ_;qRJ delta 338 zcmZ3$vw&-YhPVJD0~|PjSq=lS~Ozvc| z*S*04wuiw3LNRavX^;?z1_22O#b6Dj8G)t{JGZ4^UA~Ak9AcF0(dg1JtgN$$~7Qlkc$zO-^9(V`Q6rpGBOJaq@Q-eQrhuHmEMP j$)2pysvwRKRD=si!(0Ut(twFie#j~=0Fq?_Vwipar1mgG diff --git a/tests/test/cg/obj/openbsd/x86_64/ctest.o b/tests/test/cg/obj/openbsd/x86_64/ctest.o index fc82bbc1b37772bf905c692cbea4bfc9d0b78fe0..203a31c55e6e5239536888f0d560bbb6fbb6d630 100644 GIT binary patch literal 9952 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 S%3sVm4>^K!9vT#!^U%M(>-I|k literal 5688 zcmbuCU1(fI6vt=t(R^sLX$iH~(B6o)se~n)57V?!uB2=4gH$NwZK2u5#3GH>WD8M} z7%fPaDCmpiA(XuMp!g_l9zv70U}K+x&nYZ|6123bzASagdd|!_+1;~uym32l=i~RE zbLQMTvuBb|VsE`!5eg|TA@#b-kC-auJ(KUdy6dWXRig&H)Nk(WR4#lymh-|lSAV{P zWF$4U9ljCU_QESfQd3y~+3?Cb%-n{FUshFk^JX?^bFnOsywp@?ZXg5Gvc=O_05|gm z)`d89yVN`C-drqW)`HQNm%0LEU<>AEFlG9?y<1o@G9T-7S8Sg0SWW8i5@2LbsuDpqY!cLfm@UHodHN7%6rLJOAizEQ{yi zZY+b%pG`WF@b%NxkKogWV%e*)Oz7%VMos@-u*q;h9$F0_78!<$3}OE^t%jRLh80DI zsi_B6y9Y&fl|^>{W5KF&4XevF+*7V$jWkTVvsdgNHeK|AYDLL+Jv$ zf7fu4vGw>h7Jc2ua*Pg@V|2J2qa)=QIXgy8W+PPS<8vxB(HN?Hwx;$gxNw?*F8>BlHJxjW6{bss& z4_oZ}0`xfP$1V1gq`zR%7f3&9(U$}C4br0)`z+~)EP8VV3QF~0<+DG1r1x6%cz`|` zpf8Yq!s359zzT6y$DOW7MbRe#!rvtRJUHL6 zFPA#)LZDaWX{rT!XiuMbhhG+UEJ*ufAk;pEJ^to#eLCXMGlkcm5DVg3g{2J!Vv3fx z^ko45f6$Ae9nNF>gL;-yr=Z34W!bDZq*(}Z?mp1vw?mUE`oHINfW6tI*|kBlF=-}*}!7?f@iuo#+2J~hs(Qjc>!60GO%rLtrfjdi7Ogc!Hq&LJ;7e7GI^ z3)ZFWRgJ`X%`Z5Bix# z2*uI0QeDs@zeZ#Bf0FnQ#PwYbeV6z>!OsxiB(Cpf=wp27e;;juzLS9s5N{)X6vkNM z@ZkJ&f)5d&Ag=FTVDAzCj<~*afqh8)4sm_g0-GTIgt)$gfPF^1vjRF$n12C%jOUWz z-w^+nxV}q)EfT*k=6_H803Ckz|0D6Y1;0srR`50Aw}|UI64)=qw*|jX{1hEsJ}C+?4f z6%@=vbQJa2)pee8{uvaU^U#doE{zuj=X13xIOn0X;L|jQqoWJQd5yRuIOic(@Ow0W zP;kyeGlFv-S`?h~(5m2^hth&`9^#M7@pB$>=%X{|Jmd<_d1z2@&O5{6hR4L diff --git a/tests/test/cg/obj/openbsd/x86_64/tcext4.o b/tests/test/cg/obj/openbsd/x86_64/tcext4.o index ebe66fca3b1110b13dad605627e03629bbd93af1..4696490d1de084fa8cd61689f60948f1fd69deed 100644 GIT binary patch literal 3064 zcmbuA&ubGw6vy9YW0QzBQT$P8(CEb;WFbxbRjZ`PmOThUK~ELCZ6kqNkYvFstrh}8 z>A@a7^w6UR4<5u*k${IH_y_dRLlK04r$P=M6rDHw9@)M|7o358GxPb*cjjf^?&gJi zdpu!Tz|Df2(48>_Xdmj1D|%Rg4D`WWZ{?e}vefog-FEf^c-fDw&z}fxds}WB*KWBT z?7k1Ix*hMeXS>_9)U(`n)9qNzrH=LdEAH`s=7fpaHZdnn%zY;2l!-ZQV(vFFXHCpG z6Z2^k^BEKKSrc=C&G-tz2^|5fXA@v8{jXl9b=-+`dghL6hv*>AAE#I&d45K*UgsAm|2d^cn>;_NMaQ@< z346bzjK{XlnrGeKK2U{FvwLQUc^|y zns)hl;$H+GBA%fe#QQkJ#|1AFZwfv_ye0S;@n3>_#7F1>=5y~5eg^oB)mTaGwSP7c4pwQ-)Izd9M-X!&>$@yC*LOp3u5U|luJ5kkT;D&&75Y#B literal 3184 zcmbuB&r4KM6vxk-F=w>WDf%HK^=gwrJe(h8n#G7ceTyg%Y-QxA6M{{J^B@Z?L5Rdf zEnT>9*`h^@XeBXFAVGhE3kd?DjqY4b*gf~1qtoHp1Mh`*?!BMy`QCfyo%bH|%Dvqe zvn=3d!A;nkF$GB0?~U_%n1@D4z@Rt(%bTCs_7>dj=Fi|Yf2n-`N^rwlbvH40)vaRp zyJf+xdW&A%-Jn#@ayRGPsx>!LwO;;IYiu6O95XS;P0V#B=6Vxz!o-|3F*li*n@!9q z6Z2^k^H~$~ITN$ZW_*R`FY7NjHuq94Ek{%`Nb(8oUwvm0B59J24}MP zsNfXGA3U5al#1YtJ}H%okA1qc2k*`(D;}SpH(n`EgNZnkps)LP3g^`v{UQxMNI*X6 zzo>Z9z@JuL+&`wS+V+w5-$t>f;a;`vvYN;m<^7=` zp_THulex!~5O%A+k^dGOsh577%ioTvZ|I;Y5*rjts7sz7dD#AojY?2$BItIb+<#XP z1I(*~tsQ~&G#+}#@El>k1bNsAk%v_dxqO;I{pSHVUbC z@cYEK1Ro>rP-%F5@JH2`E9Z>D(?YqN)-j`FR>z!1?T$y1+@VO;{X5v diff --git a/tests/test/cg/obj/openbsd/x86_64/tcext5.o b/tests/test/cg/obj/openbsd/x86_64/tcext5.o index 8352c6112200c4b252bdb5d4e5bc1c0d29e9484e..1a0abf7e90cff0c664d55398704806e37aebb09e 100644 GIT binary patch literal 7472 zcmbtYYitx%6u#RBw56~`h#;-7fD&TJhNXbTH0=@?odl{tY(hvA`k)ng2)5f;Ojp*R zq?>AjN(?bI=`XE+OiX|_v4I62RR35Bk(%_!M$xQxd0Hbsn$&adJ*P8!JJadvO?Kwa zch33Fx%bZf?zAV3ozLd@e1e-#R0->eQ6UCOtbSN_!(yH&5VdCfw{TbVZn&#G9gC)Y zks|Y&k(`7!R_woM+%^4|5@y^;n%ze7yRXo@B_6#)-Z>fG{l*>Be_8X6N7LY(ibYeo zHs>Y&ek1L_JPaA`K!SJka?Ep?S**A`TU=qck=8xUcr*nmZpEUv@}=vDtbS2Z%=$ zMMn#z^ROBaE`k4IZ3>p;y6GE+xM6^Xrv_w;E1DM9k8zj1;^x`nmYdzRNtg_bOPF$W zf6BMPch!v7x~49+Q7pugVSdaeuf+3hQKgs|C+3{Wnw~}01+MY1nlyl!s`lIB*JR|k z;&FLrQA&x8%8yiXk@ZP~J%{^kg>+W?Z6i3Bfb&uqHrxVm>o(S^S?D*`S<4W#s<7=# z+b#~+SiN`g$_#IhUA)TX?7fR0_!k-@JL3ts*9;i(A=q~GmfkSqH7FHB+q;bOvFMG} z?Nzbp`6t>d9{5X)5xC4pk$T{-yVBwh=41c0$I&$4Xv!Hw+3K6xCkcOl?U41p_rY}b zseQt;bj=t?Qdoj!+lba(GwvZgwz%84XP)z4+@60I1jJ{IpEBhBB zDzJDpt!`1ri^cm&HoS$7yzw7#YsVkF`3vkp0pk56?4rrS;kc3Ns<92>ST?DO98+zL z!_fyaGJv}snlR({&6QU`JX7WXZeD1U=E`BS5ah;4fxg)Cw`G%mfn$D|T%W>7HoSgE zUOW+|)+F673Dv>iu+}9RYh7Xy+V*88;mK?Wm(7CkR5pamXF>Q@HiRo?LHKqygn?;< z@=e;i<^0f3WkcbK&+cEZY1~!)-tErnn`IBfi=|Zv-|KsXucO3QT0FPl419Q(0ggXx zLA-2TP;xqF+x$7$hlaLF*>ktok-Y-%4)L92f6B$)L-tKB_Cd0jyVys`Ug=_=AiG=s zGWr9=t^P_6dmY)gx#aI8`(_t=581;m_CXK(DA{+o#7~fYql>*P2Mt2(!HdKCRg&H9 z{iyS>caq(0etXFNzDxc=ve&xUM?LHl9`>?aBo^XDyf}@Y>~8t%JnWqw_8t%WAldi2 z)Hmv3pCJ2Tm-wWZ&%)-|1oR@vski*hgoui(uP{qmhP2xJO#m z{UG;Rn~yXEBh4KV5j@ZkX%NB2wl)!LJ*FO{wfW%wmez)&%{a3E)dCQW+mLmY$->kr zoyUl}(~zdXQt0Uz8rMFiT`g49NLk<3kXO zb*wbx=s3l9Q2ax!U_E{d#A_~+x{Kzoj|PVGhik;~T-QRt^syts zar!@%i4V4hwc49g?P%{wC++u#}7^YBCdYT7XJ+W{~>I z{0qWA)bK9}A0u3z>41Ghcr^(y^ZY>gSq=Z0@IN&CSHi1slR{&j+tA1P{DAPi(kjG1 zgpX->4!j5Gzl}EfVe+3(_~(Sj2wzHg5QP95^RFiSG~v6ISp*5cso`4)UyBE+S2EaBd1ViQ^4zZ6SHxAg|@}x=~&?$?Il$eOg{CJf-#GazZp2~ndl>~b#5B5~K z*i$8APnC^5DqVK1EL5#TEvAq~wZZDrSkSlJRvqikN3;)c+v2M{q5gR=`H62c%V<$0Q9B32Qj-^Lhus-wv)(2&ob@)T;jFi?MP$Po@yB`_ z&~VnCY yZ<89%ddr_ATo3DQz_u^Y#(EppaMs&;4QIWLX*la`uZFYUCN!M&HmTvPxBmjui1l^= literal 7600 zcmbtYU2GIp6rSx5w571E5JjlCfRbv+rc29D32B#0nQ1DjG?7 z!Ue_+eQFxoM4|VhK5cj}4;e9i%IMXnzWW-rTVj!iq@9(fJ)l1{yjK+MSR@6?$!H{* zZBc&0JD{h$S4P0YLvZkJPL^>l-HU0LW3kKc)l;gb5sM_j#e-<%L9S3ui0BvhhLS*^ zvd||WiG)nTVl>ZURE$Ot+BuHM-ekVTWEq=yt|{5r+vZtp^B|xkTFHBy7n|!!rVQae(4830dq4X4ws(-4!>x1s1y%MsH{e76a{u43XVG z;xu@!8L^O~>p}}fF@_B5V>G!rUTCpej*f9*&PlJSIe1;1j^~BED5RA3MdTbc39i7r~BUXz?cywEjemxo)U)@<1 zja+}GbJKlqk)D8VAr`6o-ny$TUVkpmUw;Zk!?vQV2`pQeX70&|cOW!sp7%?zoR{Q1 zfmON-)nf97opN5nMlW95u~FcOPfd&X{1>u=_sT>D$|ceCV?|C!65fx8;rf2pblU-GA#Bh)#po?6Yu-rt?SO z-PTiUN#STFt_o~jZH+ZQ58lV&p@)(GyT#EdDz( z@xRE{zi_TDVK@_BuPrZBCQDW76oigdsVHr)i%dexy-X)OkqP0lIS`)AgmA?i2;a_x z@aZ`azLN=|Zx*3ANqZ~59R8_fIGFnE-p$&^m#W{p-CcdFBpF;Hq?+b=W4Gq%D)M9( z&d)moAKoQ^;}4r3yRD0gPG!|BoQHF0DBB`t&hk2vZ^F^WzMJIFJIMP;zTQDTNb+(A z`54K!ILK2Zck*9Ce}Fi}zr{sfNAem6|J@|t;2`fKdC);V=pr8@`3?vB6v-kL2$=_#Y&B$U#2lB2T%&nVDmTe4F`k+M5qI_`}UzVa5$(8#_8QfBRASAf(N$`&-%@+L|?g)6urJ<|AQD|Nk~05a4y?`pbMlnk-+yh#V>P z8E`qwR1AgZpOh-~a?lE3L_c}-yp+Z@gwv5BRMYAdzbsIFtpx#c{#W||*kW9CWnm^; zJ^AN28Rz)UStW`< z)h!0Ox^`%Cn(W0Lvv8>PcDbW^e6ciYrQ~oqFm^Tme8BAd8mMcjfr9rCzKV_tufrL__Yp3>IRN{Z@JYhO zyB@Gl3ExUbi}5cA|4_ldB7B1IJ@Aa}8~9;f)l}G-=Lf>iD)`TY|DoW&5?(bQCeWDY zHq4R#1H$(Tsiyr+_=JLI!8t(v8Y%#XNPi*WpA#M>d@136ED+F`e>LH!2-z54< z(Fe-pAgu$^JRt1@k{}=%0+OO!YL*9hB#&$pIM5g#?Xx!%SVoa-%rs&G79Z+&zT80UH$RB*1h^$O1QHmcxUZ~GOT>+O(& MbG?l#IM>^M0kt9zs{jB1 diff --git a/tests/test/cg/obj/openbsd/x86_64/tcext6.o b/tests/test/cg/obj/openbsd/x86_64/tcext6.o index c98345a084f4a40d94d49736bc85a30fc3da13c7..d014c2754ee2deb8781004f7b26b042a75a7bdf5 100644 GIT binary patch literal 8912 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 EKXuTWWdHyG literal 7656 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