| ... | @@ -239,7 +239,6 @@ pub fn fromPosixSignalContext(ctx_ptr: ?*const anyopaque) ?Native { | ... | @@ -239,7 +239,6 @@ pub fn fromPosixSignalContext(ctx_ptr: ?*const anyopaque) ?Native { |
| 239 | .s390x => switch (builtin.os.tag) { | 239 | .s390x => switch (builtin.os.tag) { |
| 240 | .linux => .{ | 240 | .linux => .{ |
| 241 | .r = uc.mcontext.gregs, | 241 | .r = uc.mcontext.gregs, |
| 242 | .f = uc.mcontext.fregs, | | |
| 243 | .psw = .{ | 242 | .psw = .{ |
| 244 | .mask = uc.mcontext.psw.mask, | 243 | .mask = uc.mcontext.psw.mask, |
| 245 | .addr = uc.mcontext.psw.addr, | 244 | .addr = uc.mcontext.psw.addr, |
| ... | @@ -1029,8 +1028,6 @@ pub const Riscv = extern struct { | ... | @@ -1029,8 +1028,6 @@ pub const Riscv = extern struct { |
| 1029 | pub const S390x = extern struct { | 1028 | pub const S390x = extern struct { |
| 1030 | /// The numbered general-purpose registers r0 - r15. | 1029 | /// The numbered general-purpose registers r0 - r15. |
| 1031 | r: [16]u64, | 1030 | r: [16]u64, |
| 1032 | /// The numbered floating-point registers f0 - f15. Yes, really - they can be used in DWARF CFI. | | |
| 1033 | f: [16]f64, | | |
| 1034 | /// The program counter. | 1031 | /// The program counter. |
| 1035 | psw: extern struct { | 1032 | psw: extern struct { |
| 1036 | mask: u64, | 1033 | mask: u64, |
| ... | @@ -1041,26 +1038,10 @@ pub const S390x = extern struct { | ... | @@ -1041,26 +1038,10 @@ pub const S390x = extern struct { |
| 1041 | var ctx: S390x = undefined; | 1038 | var ctx: S390x = undefined; |
| 1042 | asm volatile ( | 1039 | asm volatile ( |
| 1043 | \\ stmg %%r0, %%r15, 0(%%r2) | 1040 | \\ stmg %%r0, %%r15, 0(%%r2) |
| 1044 | \\ std %%f0, 128(%%r2) | | |
| 1045 | \\ std %%f1, 136(%%r2) | | |
| 1046 | \\ std %%f2, 144(%%r2) | | |
| 1047 | \\ std %%f3, 152(%%r2) | | |
| 1048 | \\ std %%f4, 160(%%r2) | | |
| 1049 | \\ std %%f5, 168(%%r2) | | |
| 1050 | \\ std %%f6, 176(%%r2) | | |
| 1051 | \\ std %%f7, 184(%%r2) | | |
| 1052 | \\ std %%f8, 192(%%r2) | | |
| 1053 | \\ std %%f9, 200(%%r2) | | |
| 1054 | \\ std %%f10, 208(%%r2) | | |
| 1055 | \\ std %%f11, 216(%%r2) | | |
| 1056 | \\ std %%f12, 224(%%r2) | | |
| 1057 | \\ std %%f13, 232(%%r2) | | |
| 1058 | \\ std %%f14, 240(%%r2) | | |
| 1059 | \\ std %%f15, 248(%%r2) | | |
| 1060 | \\ epsw %%r0, %%r1 | 1041 | \\ epsw %%r0, %%r1 |
| 1061 | \\ stm %%r0, %%r1, 256(%%r2) | 1042 | \\ stm %%r0, %%r1, 128(%%r2) |
| 1062 | \\ larl %%r0, . | 1043 | \\ larl %%r0, . |
| 1063 | \\ stg %%r0, 264(%%r2) | 1044 | \\ stg %%r0, 136(%%r2) |
| 1064 | \\ lg %%r0, 0(%%r2) | 1045 | \\ lg %%r0, 0(%%r2) |
| 1065 | \\ lg %%r1, 8(%%r2) | 1046 | \\ lg %%r1, 8(%%r2) |
| 1066 | : | 1047 | : |
| ... | @@ -1072,26 +1053,10 @@ pub const S390x = extern struct { | ... | @@ -1072,26 +1053,10 @@ pub const S390x = extern struct { |
| 1072 | pub fn dwarfRegisterBytes(ctx: *S390x, register_num: u16) DwarfRegisterError![]u8 { | 1053 | pub fn dwarfRegisterBytes(ctx: *S390x, register_num: u16) DwarfRegisterError![]u8 { |
| 1073 | switch (register_num) { | 1054 | switch (register_num) { |
| 1074 | 0...15 => return @ptrCast(&ctx.r[register_num]), | 1055 | 0...15 => return @ptrCast(&ctx.r[register_num]), |
| 1075 | // Why??? | | |
| 1076 | 16 => return @ptrCast(&ctx.f[0]), | | |
| 1077 | 17 => return @ptrCast(&ctx.f[2]), | | |
| 1078 | 18 => return @ptrCast(&ctx.f[4]), | | |
| 1079 | 19 => return @ptrCast(&ctx.f[6]), | | |
| 1080 | 20 => return @ptrCast(&ctx.f[1]), | | |
| 1081 | 21 => return @ptrCast(&ctx.f[3]), | | |
| 1082 | 22 => return @ptrCast(&ctx.f[5]), | | |
| 1083 | 23 => return @ptrCast(&ctx.f[7]), | | |
| 1084 | 24 => return @ptrCast(&ctx.f[8]), | | |
| 1085 | 25 => return @ptrCast(&ctx.f[10]), | | |
| 1086 | 26 => return @ptrCast(&ctx.f[12]), | | |
| 1087 | 27 => return @ptrCast(&ctx.f[14]), | | |
| 1088 | 28 => return @ptrCast(&ctx.f[9]), | | |
| 1089 | 29 => return @ptrCast(&ctx.f[11]), | | |
| 1090 | 30 => return @ptrCast(&ctx.f[13]), | | |
| 1091 | 31 => return @ptrCast(&ctx.f[15]), | | |
| 1092 | 64 => return @ptrCast(&ctx.psw.mask), | 1056 | 64 => return @ptrCast(&ctx.psw.mask), |
| 1093 | 65 => return @ptrCast(&ctx.psw.addr), | 1057 | 65 => return @ptrCast(&ctx.psw.addr), |
| 1094 | | 1058 | |
| | 1059 | 16...31 => return error.UnsupportedRegister, // f0 - f15 |
| 1095 | 48...63 => return error.UnsupportedRegister, // a0 - a15 | 1060 | 48...63 => return error.UnsupportedRegister, // a0 - a15 |
| 1096 | 68...83 => return error.UnsupportedRegister, // v16 - v31 | 1061 | 68...83 => return error.UnsupportedRegister, // v16 - v31 |
| 1097 | | 1062 | |