diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /js/src/jit/ABIFunctionType.yaml | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/jit/ABIFunctionType.yaml')
-rw-r--r-- | js/src/jit/ABIFunctionType.yaml | 280 |
1 files changed, 280 insertions, 0 deletions
diff --git a/js/src/jit/ABIFunctionType.yaml b/js/src/jit/ABIFunctionType.yaml new file mode 100644 index 0000000000..4d115e05cb --- /dev/null +++ b/js/src/jit/ABIFunctionType.yaml @@ -0,0 +1,280 @@ +# The definitions in here are processed by GenerateABIFunctionType.py to +# generate the ABIFunctionType enum and simulator code for handling these +# function types. +# +# The name field is optional and will be autogenerated if omitted. New +# additions should generally use the autogenerated name. + +# VM functions that take 0-9 non-double arguments +# and return a non-double value. +- name: General0 + ret: General + args: [] +- name: General1 + ret: General + args: [General] +- name: General2 + ret: General + args: [General, General] +- name: General3 + ret: General + args: [General, General, General] +- name: General4 + ret: General + args: [General, General, General, General] +- name: General5 + ret: General + args: [General, General, General, General, General] +- name: General6 + ret: General + args: [General, General, General, General, General, General] +- name: General7 + ret: General + args: [General, General, General, General, General, General, General] +- name: General8 + ret: General + args: [General, General, General, General, General, General, General, General] + +# int64 f(double) +- name: Int64_Double + ret: Int64 + args: [Float64] + +# double f() +- name: Double_None + ret: Float64 + args: [] + +# int f(double) +- name: Int_Double + ret: General + args: [Float64] + +# int f(float32) +- name: Int_Float32 + ret: General + args: [Float32] + +# float f(float) +- ret: Float32 + args: [Float32] + +# float f(int, int) +- name: Float32_IntInt + ret: Float32 + args: [General, General] + +# double f(double) +- name: Double_Double + ret: Float64 + args: [Float64] + +# double f(int) +- name: Double_Int + ret: Float64 + args: [General] + +# double f(int, int) +- name: Double_IntInt + ret: Float64 + args: [General, General] + +# double f(double, int) +- name: Double_DoubleInt + ret: Float64 + args: [Float64, General] + +# double f(double, double) +- name: Double_DoubleDouble + ret: Float64 + args: [Float64, Float64] + +# float f(float, float) +- ret: Float32 + args: [Float32, Float32] + +# double f(int, double) +- name: Double_IntDouble + ret: Float64 + args: [General, Float64] + +# int f(int, double) +- name: Int_IntDouble + ret: General + args: [General, Float64] + +# int f(double, int) +- name: Int_DoubleInt + ret: General + args: [Float64, General] + +# double f(double, double, double) +- name: Double_DoubleDoubleDouble + ret: Float64 + args: [Float64, Float64, Float64] + +# double f(double, double, double, double) +- name: Double_DoubleDoubleDoubleDouble + ret: Float64 + args: [Float64, Float64, Float64, Float64] + +# int f(double, int, int) +- name: Int_DoubleIntInt + ret: General + args: [Float64, General, General] + +# int f(int, double, int, int) +- name: Int_IntDoubleIntInt + ret: General + args: [General, Float64, General, General] + +- name: Int_GeneralGeneralGeneralInt64 + ret: General + args: [General, General, General, Int64] + +- name: Int_GeneralGeneralInt64Int64 + ret: General + args: [General, General, Int64, Int64] + +# int32_t f(...) variants +- ret: General + args: [General, Int32] + +- ret: General + args: [General, Int32, General] + +- ret: General + args: [General, Int32, Int32] + +- ret: General + args: [General, Int32, Int32, General, Int32] + +- name: General_GeneralGeneralInt32Int32 + ret: General + args: [General, General, Int32, Int32] + +# int32_t f(...) variants +- ret: Int32 + args: [General] + +- ret: Int32 + args: [General, General] + +- ret: Int32 + args: [General, General, General] + +- ret: Int32 + args: [General, General, General, Int32] + +- ret: Int32 + args: [General, General, Int32] + +- ret: Int32 + args: [General, General, Int32, General] + +- ret: Int32 + args: [General, General, Int32, General, Int32, Int32, Int32] + +- ret: Int32 + args: [General, General, Int32, Int32] + +- ret: Int32 + args: [General, General, Int32, Int32, Int32, General, Int32] + +- ret: Int32 + args: [General, Int32] + +- ret: Int32 + args: [General, Int32, Float32, Float32, Float32, Float32, Int32, Int32, Int32, Int32, General] + +- ret: Int32 + args: [General, Int32, Float32, Float32, Int32, Float32, Float32, Int32, Float32, Int32, Int32, Int32, Int32, General] + +- ret: Int32 + args: [General, Int32, Float32, Float32, Int32, Int32, Int32, General] + +- ret: Int32 + args: [General, Int32, General, Int32] + +- ret: Int32 + args: [General, Int32, General, Int32, Int32] + +- ret: Int32 + args: [General, Int32, Int32] + +- ret: Int32 + args: [General, Int32, Int32, General] + +- ret: Int32 + args: [General, Int32, Int32, Int32] + +- ret: Int32 + args: [General, Int32, Int32, Int32, General] + +- ret: Int32 + args: [General, Int32, Int32, Int32, Int32] + +- ret: Int32 + args: [General, Int32, Int32, Int32, Int32, General] + +- ret: Int32 + args: [General, Int32, Int32, Int32, Int32, Int32] + +- ret: Int32 + args: [General, Int32, Int32, Int32, Int32, Int32, Int32, General] + +- ret: Int32 + args: [General, Int32, Int32, Int64, Int32] + +- ret: Int32 + args: [General, Int32, Int64, Int64, Int32] + +- ret: Int32 + args: [General, Int64, Int32, Int32] + +- ret: Int32 + args: [General, Int64, Int32, Int32, Int32, Int32] + +- ret: Int32 + args: [General, Int64, Int32, Int64, General] + +- ret: Int32 + args: [General, Int64, Int32, Int64, Int32] + +- ret: Int32 + args: [General, Int64, Int64, General] + +- ret: Int32 + args: [General, Int64, Int64, Int64] + +- ret: Int32 + args: [General, Int64, Int64, Int64, General] + +- ret: Int32 + args: [General, Int64, Int64, Int64, General, General] + +- ret: Int32 + args: [General, Int64, Int64, Int64, Int32] + +- ret: Int32 + args: [General, Int64, Int64, Int64, Int32, Int32] + +# Functions that return Int64 are tricky because SpiderMonkey's ReturnRegI64 +# does not match the ABI int64 return register on x86. Wasm only! +- ret: Int64 + args: [General] + +- ret: Int64 + args: [General, General] + +- ret: Int64 + args: [Int32, Int32, Int32, Int32] + +- ret: Int64 + args: [General, Int32] + +- ret: Int64 + args: [General, Int64] + +- ret: Int64 + args: [General, Int64, Int32] |