authorgravatar for xtex@astrafall.orgxtex <xtex@astrafall.org> 2026-06-21 21:50:47+08:00
committergravatar for xtex@astrafall.orgxtex <xtex@astrafall.org> 2026-06-25 22:06:24+08:00
loge048c90545c4f7df1377f9fcdce14ce5e5a2056f
tree02368da2db23f3b213111c55ec21f0883af512b5
parent2dca73595f8113c99c9293d0eae97d912e47fe88
signaturebadge-check Signed by SSH key SHA256:IEYEjkZlkUTr5U9GiDAmZU/4eZus2t2RsxusyhQqwao

std.elf: add R_LARCH relocations


1 files changed, 135 insertions(+), 0 deletions(-)

lib/std/elf.zig+135
...@@ -3001,6 +3001,141 @@ pub const R_PPC64 = enum(u32) {...@@ -3001,6 +3001,141 @@ pub const R_PPC64 = enum(u32) {
3001 _,3001 _,
3002};3002};
30033003
3004/// LoongArch relocations, as of v2.50 of the ABI specs.
3005pub const R_LARCH = enum(u32) {
3006 NONE = 0,
3007 @"32" = 1,
3008 @"64" = 2,
3009 RELATIVE = 3,
3010 COPY = 4,
3011 JUMP_SLOT = 5,
3012 TLS_DTPMOD32 = 6,
3013 TLS_DTPMOD64 = 7,
3014 TLS_DTPREL32 = 8,
3015 TLS_DTPREL64 = 9,
3016 TLS_TPREL32 = 10,
3017 TLS_TPREL64 = 11,
3018 IRELATIVE = 12,
3019 TLS_DESC32 = 13,
3020 TLS_DESC64 = 14,
3021 MARK_LA = 20,
3022 MARK_PCREL = 21,
3023 SOP_PUSH_PCREL = 22,
3024 SOP_PUSH_ABSOLUTE = 23,
3025 SOP_PUSH_DUP = 24,
3026 SOP_PUSH_GPREL = 25,
3027 SOP_PUSH_TLS_TPREL = 26,
3028 SOP_PUSH_TLS_GOT = 27,
3029 SOP_PUSH_TLS_GD = 28,
3030 SOP_PUSH_PLT_PCREL = 29,
3031 SOP_ASSERT = 30,
3032 SOP_NOT = 31,
3033 SOP_SUB = 32,
3034 SOP_SL = 33,
3035 SOP_SR = 34,
3036 SOP_ADD = 35,
3037 SOP_AND = 36,
3038 SOP_IF_ELSE = 37,
3039 SOP_POP_32_S_10_5 = 38,
3040 SOP_POP_32_U_10_12 = 39,
3041 SOP_POP_32_S_10_12 = 40,
3042 SOP_POP_32_S_10_16 = 41,
3043 SOP_POP_32_S_10_16_S2 = 42,
3044 SOP_POP_32_S_5_20 = 43,
3045 SOP_POP_32_S_0_5_10_16_S2 = 44,
3046 SOP_POP_32_S_0_10_10_16_S2 = 45,
3047 SOP_POP_32_U = 46,
3048 ADD8 = 47,
3049 ADD16 = 48,
3050 ADD24 = 49,
3051 ADD32 = 50,
3052 ADD64 = 51,
3053 SUB8 = 52,
3054 SUB16 = 53,
3055 SUB24 = 54,
3056 SUB32 = 55,
3057 SUB64 = 56,
3058 GNU_VTINHERIT = 57,
3059 GNU_VTENTRY = 58,
3060 B16 = 64,
3061 B21 = 65,
3062 B26 = 66,
3063 ABS_HI20 = 67,
3064 ABS_LO12 = 68,
3065 ABS64_LO20 = 69,
3066 ABS64_HI12 = 70,
3067 PCALA_HI20 = 71,
3068 PCALA_LO12 = 72,
3069 PCALA64_LO20 = 73,
3070 PCALA64_HI12 = 74,
3071 GOT_PC_HI20 = 75,
3072 GOT_PC_LO12 = 76,
3073 GOT64_PC_LO20 = 77,
3074 GOT64_PC_HI12 = 78,
3075 GOT_HI20 = 79,
3076 GOT_LO12 = 80,
3077 GOT64_LO20 = 81,
3078 GOT64_HI12 = 82,
3079 TLS_LE_HI20 = 83,
3080 TLS_LE_LO12 = 84,
3081 TLS_LE64_LO20 = 85,
3082 TLS_LE64_HI12 = 86,
3083 TLS_IE_PC_HI20 = 87,
3084 TLS_IE_PC_LO12 = 88,
3085 TLS_IE64_PC_LO20 = 89,
3086 TLS_IE64_PC_HI12 = 90,
3087 TLS_IE_HI20 = 91,
3088 TLS_IE_LO12 = 92,
3089 TLS_IE64_LO20 = 93,
3090 TLS_IE64_HI12 = 94,
3091 TLS_LD_PC_HI20 = 95,
3092 TLS_LD_HI20 = 96,
3093 TLS_GD_PC_HI20 = 97,
3094 TLS_GD_HI20 = 98,
3095 @"32_PCREL" = 99,
3096 RELAX = 100,
3097 DELETE = 101,
3098 ALIGN = 102,
3099 PCREL20_S2 = 103,
3100 CFA = 104,
3101 ADD6 = 105,
3102 SUB6 = 106,
3103 ADD_ULEB128 = 107,
3104 SUB_ULEB128 = 108,
3105 @"64_PCREL" = 109,
3106 CALL36 = 110,
3107 TLS_DESC_PC_HI20 = 111,
3108 TLS_DESC_PC_LO12 = 112,
3109 TLS_DESC64_PC_LO20 = 113,
3110 TLS_DESC64_PC_HI12 = 114,
3111 TLS_DESC_HI20 = 115,
3112 TLS_DESC_LO12 = 116,
3113 TLS_DESC64_LO20 = 117,
3114 TLS_DESC64_HI12 = 118,
3115 TLS_DESC_LD = 119,
3116 TLS_DESC_CALL = 120,
3117 TLS_LE_HI20_R = 121,
3118 TLS_LE_ADD_R = 122,
3119 TLS_LE_LO12_R = 123,
3120 TLS_LD_PCREL20_S2 = 124,
3121 TLS_GD_PCREL20_S2 = 125,
3122 TLS_DESC_PCREL20_S2 = 126,
3123 CALL30 = 127,
3124 PCADD_HI20 = 128,
3125 PCADD_LO12 = 129,
3126 GOT_PCADD_HI20 = 130,
3127 GOT_PCADD_LO12 = 131,
3128 TLS_IE_PCADD_HI20 = 132,
3129 TLS_IE_PCADD_LO12 = 133,
3130 TLS_LD_PCADD_HI20 = 134,
3131 TLS_LD_PCADD_LO12 = 135,
3132 TLS_GD_PCADD_HI20 = 136,
3133 TLS_GD_PCADD_LO12 = 137,
3134 TLS_DESC_PCADD_HI20 = 138,
3135 TLS_DESC_PCADD_LO12 = 139,
3136 _,
3137};
3138
3004pub const ar_hdr = extern struct {3139pub const ar_hdr = extern struct {
3005 /// Member file name, sometimes / terminated.3140 /// Member file name, sometimes / terminated.
3006 ar_name: [16]u8,3141 ar_name: [16]u8,