ABIFunctionType.yaml (6733B)
1 # The definitions in here are processed by GenerateABIFunctionType.py to 2 # generate the ABIFunctionType enum and simulator code for handling these 3 # function types. 4 # 5 # The name field is optional and will be autogenerated if omitted. New 6 # additions should generally use the autogenerated name. 7 8 # VM functions that take 0-9 non-double arguments 9 # and return a non-double value. 10 - name: General0 11 ret: General 12 args: [] 13 - name: General1 14 ret: General 15 args: [General] 16 - name: General2 17 ret: General 18 args: [General, General] 19 - name: General3 20 ret: General 21 args: [General, General, General] 22 - name: General4 23 ret: General 24 args: [General, General, General, General] 25 - name: General5 26 ret: General 27 args: [General, General, General, General, General] 28 - name: General6 29 ret: General 30 args: [General, General, General, General, General, General] 31 - name: General7 32 ret: General 33 args: [General, General, General, General, General, General, General] 34 - name: General8 35 ret: General 36 args: [General, General, General, General, General, General, General, General] 37 38 # int64 f(double) 39 - name: Int64_Double 40 ret: Int64 41 args: [Float64] 42 43 # double f() 44 - name: Double_None 45 ret: Float64 46 args: [] 47 48 # int f(double) 49 - name: Int_Double 50 ret: General 51 args: [Float64] 52 53 # int f(float32) 54 - name: Int_Float32 55 ret: General 56 args: [Float32] 57 58 # int32_t f(float32) 59 - ret: Int32 60 args: [Float32] 61 62 # float f(float) 63 - ret: Float32 64 args: [Float32] 65 66 # float f(double) 67 - ret: Float32 68 args: [Float64] 69 70 # float f(int) 71 - ret: Float32 72 args: [General] 73 74 # float f(int32_t) 75 - ret: Float32 76 args: [Int32] 77 78 # float f(int, int) 79 - name: Float32_IntInt 80 ret: Float32 81 args: [General, General] 82 83 # double f(double) 84 - name: Double_Double 85 ret: Float64 86 args: [Float64] 87 88 # double f(int) 89 - name: Double_Int 90 ret: Float64 91 args: [General] 92 93 # double f(int, int) 94 - name: Double_IntInt 95 ret: Float64 96 args: [General, General] 97 98 # double f(double, int) 99 - name: Double_DoubleInt 100 ret: Float64 101 args: [Float64, General] 102 103 # double f(double, double) 104 - name: Double_DoubleDouble 105 ret: Float64 106 args: [Float64, Float64] 107 108 # float f(float, float) 109 - ret: Float32 110 args: [Float32, Float32] 111 112 # double f(int, double) 113 - name: Double_IntDouble 114 ret: Float64 115 args: [General, Float64] 116 117 # int f(int, double) 118 - name: Int_IntDouble 119 ret: General 120 args: [General, Float64] 121 122 # int f(double, int) 123 - name: Int_DoubleInt 124 ret: General 125 args: [Float64, General] 126 127 # double f(double, double, double) 128 - name: Double_DoubleDoubleDouble 129 ret: Float64 130 args: [Float64, Float64, Float64] 131 132 # double f(double, double, double, double) 133 - name: Double_DoubleDoubleDoubleDouble 134 ret: Float64 135 args: [Float64, Float64, Float64, Float64] 136 137 # int f(double, int, int) 138 - name: Int_DoubleIntInt 139 ret: General 140 args: [Float64, General, General] 141 142 # int f(int, double, int, int) 143 - name: Int_IntDoubleIntInt 144 ret: General 145 args: [General, Float64, General, General] 146 147 - name: Int_GeneralGeneralGeneralInt64 148 ret: General 149 args: [General, General, General, Int64] 150 151 - name: Int_GeneralGeneralInt64Int64 152 ret: General 153 args: [General, General, Int64, Int64] 154 155 # int32_t f(...) variants 156 - ret: General 157 args: [General, Int32] 158 159 - ret: General 160 args: [General, Int32, General] 161 162 - ret: General 163 args: [General, Int32, Int32] 164 165 - ret: General 166 args: [General, Int32, Int32, General] 167 168 - ret: General 169 args: [General, Int32, Int32, General, Int32] 170 171 - ret: General 172 args: [General, Int32, Int32, Int32, General, Int32] 173 174 - name: General_GeneralGeneralInt32Int32 175 ret: General 176 args: [General, General, Int32, Int32] 177 178 # int32_t f(...) variants 179 - ret: Int32 180 args: [General] 181 182 - ret: Int32 183 args: [General, General] 184 185 - ret: Int32 186 args: [General, General, General] 187 188 - ret: Int32 189 args: [General, General, General, General] 190 191 - ret: Int32 192 args: [General, General, General, Int32] 193 194 - ret: Int32 195 args: [General, General, Int32] 196 197 - ret: Int32 198 args: [General, General, Int32, General] 199 200 - ret: Int32 201 args: [General, General, Int32, General, Int32, Int32, Int32] 202 203 - ret: Int32 204 args: [General, General, Int32, Int32] 205 206 - ret: Int32 207 args: [General, General, Int32, Int32, Int32, Int32] 208 209 - ret: Int32 210 args: [General, General, Int32, Int32, Int32, Int32, Int32] 211 212 - ret: Int32 213 args: [General, General, Int32, Int32, Int32, General, Int32] 214 215 - ret: Int32 216 args: [General, Int32] 217 218 - ret: Int32 219 args: [General, Int32, Float32, Float32, Float32, Float32, Int32, Int32, Int32, Int32, General] 220 221 - ret: Int32 222 args: [General, Int32, Float32, Float32, Int32, Float32, Float32, Int32, Float32, Int32, Int32, Int32, Int32, General] 223 224 - ret: Int32 225 args: [General, Int32, Float32, Float32, Int32, Int32, Int32, General] 226 227 - ret: Int32 228 args: [General, Int32, General, Int32] 229 230 - ret: Int32 231 args: [General, Int32, General, Int32, Int32] 232 233 - ret: Int32 234 args: [General, Int32, Int32] 235 236 - ret: Int32 237 args: [General, Int32, Int32, General] 238 239 - ret: Int32 240 args: [General, Int32, Int32, Int32] 241 242 - ret: Int32 243 args: [General, Int32, Int32, Int32, General] 244 245 - ret: Int32 246 args: [General, Int32, Int32, Int32, Int32] 247 248 - ret: Int32 249 args: [General, Int32, Int32, Int32, Int32, General] 250 251 - ret: Int32 252 args: [General, Int32, Int32, Int32, Int32, Int32] 253 254 - ret: Int32 255 args: [General, Int32, Int32, Int32, Int32, Int32, Int32, General] 256 257 - ret: Int32 258 args: [General, Int32, Int32, Int64, Int32] 259 260 - ret: Int32 261 args: [General, Int32, Int64, Int64, Int32] 262 263 - ret: Int32 264 args: [General, Int64, Int32, Int32] 265 266 - ret: Int32 267 args: [General, Int64, Int32, Int32, Int32, Int32] 268 269 - ret: Int32 270 args: [General, Int64, Int32, Int64, General] 271 272 - ret: Int32 273 args: [General, Int64, Int32, Int64, Int32] 274 275 - ret: Int32 276 args: [General, Int64, Int64, General] 277 278 - ret: Int32 279 args: [General, Int64, Int64, Int64] 280 281 - ret: Int32 282 args: [General, Int64, Int64, Int64, General] 283 284 - ret: Int32 285 args: [General, Int64, Int64, Int64, General, General] 286 287 - ret: Int32 288 args: [General, Int64, Int64, Int64, Int32] 289 290 - ret: Int32 291 args: [General, Int64, Int64, Int64, Int32, Int32] 292 293 - ret: General 294 args: [General, Int64, General, General] 295 296 - ret: General 297 args: [General, Float32, General, General] 298 299 # Functions that return Int64 are tricky because SpiderMonkey's ReturnRegI64 300 # does not match the ABI int64 return register on x86. Wasm only! 301 - ret: Int64 302 args: [General] 303 304 - ret: Int64 305 args: [General, General] 306 307 - ret: Int64 308 args: [Int32, Int32, Int32, Int32] 309 310 - ret: Int64 311 args: [General, Int32] 312 313 - ret: Int64 314 args: [General, Int64] 315 316 - ret: Int64 317 args: [General, Int64, Int32] 318 319 # void 320 - ret: Void 321 args: [General, Int32, General, Int32, Int32] 322 323 - ret: Void 324 args: [General, General, Int32, General, Int32, Int32] 325 326 - ret: Void 327 args: [General, Int32, General, Int32, Int32, Int32]