This repository was archived by the owner on Oct 12, 2022. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Original file line number Diff line number Diff line change @@ -167,6 +167,12 @@ else version( FreeBSD )
167
167
enum _JBLEN = 5 ;
168
168
struct _jmp_buf { c_long[_JBLEN + 1 ] _jb; }
169
169
}
170
+ else version ( AArch64 )
171
+ {
172
+ enum _JBLEN = 31 ;
173
+ // __int128_t
174
+ struct _jmp_buf { long [2 ][_JBLEN + 1 ] _jb; };
175
+ }
170
176
else
171
177
static assert (0 );
172
178
alias _jmp_buf[1 ] jmp_buf;
@@ -365,6 +371,11 @@ else version( FreeBSD )
365
371
enum _JB_SIGFLAG = 5 ;
366
372
struct _sigjmp_buf { c_long[_JBLEN + 1 ] _sjb; }
367
373
}
374
+ else version ( AArch64 )
375
+ {
376
+ // __int128_t
377
+ struct _sigjmp_buf { long [2 ][_JBLEN + 1 ] _jb; };
378
+ }
368
379
else
369
380
static assert (0 );
370
381
alias _sigjmp_buf[1 ] sigjmp_buf;
Original file line number Diff line number Diff line change @@ -765,6 +765,38 @@ else version( FreeBSD )
765
765
int [6 ] mc_spare2;
766
766
}
767
767
}
768
+ else version ( AArch64 )
769
+ {
770
+ alias __register_t = long ;
771
+
772
+ struct gpregs
773
+ {
774
+ __register_t[30 ] gp_x;
775
+ __register_t gp_lr;
776
+ __register_t gp_sp;
777
+ __register_t gp_elr;
778
+ uint gp_spsr;
779
+ int gp_pad;
780
+ }
781
+
782
+ struct fpregs
783
+ {
784
+ ulong [2 ][32 ] fp_q; // __uint128_t
785
+ uint fp_sr;
786
+ uint fp_cr;
787
+ int fp_flags;
788
+ int fp_pad;
789
+ }
790
+
791
+ struct mcontext_t
792
+ {
793
+ gpregs mc_gpregs;
794
+ fpregs mc_fpregs;
795
+ int mc_flags;
796
+ int mc_pad;
797
+ ulong [8 ] mc_spare;
798
+ }
799
+ }
768
800
769
801
// <ucontext.h>
770
802
enum UCF_SWAPPED = 0x00000001 ;
You can’t perform that action at this time.
0 commit comments