Skip to content

Rename instructions in text format #933

@binji

Description

@binji

See WebAssembly/spec#884

There are plans to rename many instructions, and we should implement them here. We'll want to keep support for the old names for a while, and we may even want to have a flag to output the old names too during the transition.

The full rename list is duplicated here:

;; table declaration
anyfunc -> funcref

;; core instructions
get_local -> local.get
set_local -> local.set
tee_local -> local.tee
get_global -> global.get
set_global -> global.set
i32.wrap/i64 -> i32.wrap_i64
i32.trunc_s/f32 -> i32.trunc_f32_s
i32.trunc_u/f32 -> i32.trunc_f32_u
i32.trunc_s/f64 -> i32.trunc_f64_s
i32.trunc_u/f64 -> i32.trunc_f64_u
i64.extend_s/i32 -> i64.extend_i32_s
i64.extend_u/i32 -> i64.extend_i32_u
i64.trunc_s/f32 -> i64.trunc_f32_s
i64.trunc_u/f32 -> i64.trunc_f32_u
i64.trunc_s/f64 -> i64.trunc_f64_s
i64.trunc_u/f64 -> i64.trunc_f64_u
f32.convert_s/i32 -> f32.convert_i32_s
f32.convert_u/i32 -> f32.convert_i32_u
f32.convert_s/i64 -> f32.convert_i64_s
f32.convert_u/i64 -> f32.convert_i64_u
f32.demote/f64 -> f32.demote_f64
f64.convert_s/i32 -> f64.convert_i32_s
f64.convert_u/i32 -> f64.convert_i32_u
f64.convert_s/i64 -> f64.convert_i64_s
f64.convert_u/i64 -> f64.convert_i64_u
f64.promote/f32 -> f64.promote_f32
i32.reinterpret/f32 -> i32.reinterpret_f32
i64.reinterpret/f64 -> i64.reinterpret_f64
f32.reinterpret/i32 -> f32.reinterpret_i32
f64.reinterpret/i64 -> f64.reinterpret_i64

;; saturating-float-to-int instructions
i32.trunc_s:sat/f32 -> i32.trunc_sat_f32_s
i32.trunc_u:sat/f32 -> i32.trunc_sat_f32_u
i32.trunc_s:sat/f64 -> i32.trunc_sat_f64_s
i32.trunc_u:sat/f64 -> i32.trunc_sat_f64_u
i64.trunc_s:sat/f32 -> i64.trunc_sat_f32_s
i64.trunc_u:sat/f32 -> i64.trunc_sat_f32_u
i64.trunc_s:sat/f64 -> i64.trunc_sat_f64_s
i64.trunc_u:sat/f64 -> i64.trunc_sat_f64_u

;; simd instructions
f32x4.convert_s/i32x4 -> f32x4.convert_i32x4_s
f32x4.convert_u/i32x4 -> f32x4.convert_i32x4_u
f64x2.convert_s/i64x2 -> f64x2.convert_i64x2_s
f64x2.convert_u/i64x2 -> f64x2.convert_i64x2_u
i32x4.trunc_s/f32x4:sat -> i32x4.trunc_sat_f32x4_s
i32x4.trunc_u/f32x4:sat -> i32x4.trunc_sat_f32x4_u
i64x2.trunc_s/f64x2:sat -> i64x2.trunc_sat_f64x2_s
i64x2.trunc_u/f64x2:sat -> i64x2.trunc_sat_f64x2_u

;; atomic instructions
atomic.wake -> atomic.notify
i32.atomic.rmw8_u.add -> i32.atomic.rmw8.add_u
i32.atomic.rmw16_u.add -> i32.atomic.rmw16.add_u
i64.atomic.rmw8_u.add -> i64.atomic.rmw8.add_u
i64.atomic.rmw16_u.add -> i64.atomic.rmw16.add_u
i64.atomic.rmw32_u.add -> i64.atomic.rmw32.add_u
i32.atomic.rmw8_u.sub -> i32.atomic.rmw8.sub_u
i32.atomic.rmw16_u.sub -> i32.atomic.rmw16.sub_u
i64.atomic.rmw8_u.sub -> i64.atomic.rmw8.sub_u
i64.atomic.rmw16_u.sub -> i64.atomic.rmw16.sub_u
i64.atomic.rmw32_u.sub -> i64.atomic.rmw32.sub_u
i32.atomic.rmw8_u.and -> i32.atomic.rmw8.and_u
i32.atomic.rmw16_u.and -> i32.atomic.rmw16.and_u
i64.atomic.rmw8_u.and -> i64.atomic.rmw8.and_u
i64.atomic.rmw16_u.and -> i64.atomic.rmw16.and_u
i64.atomic.rmw32_u.and -> i64.atomic.rmw32.and_u
i32.atomic.rmw8_u.or -> i32.atomic.rmw8.or_u
i32.atomic.rmw16_u.or -> i32.atomic.rmw16.or_u
i64.atomic.rmw8_u.or -> i64.atomic.rmw8.or_u
i64.atomic.rmw16_u.or -> i64.atomic.rmw16.or_u
i64.atomic.rmw32_u.or -> i64.atomic.rmw32.or_u
i32.atomic.rmw8_u.xor -> i32.atomic.rmw8.xor_u
i32.atomic.rmw16_u.xor -> i32.atomic.rmw16.xor_u
i64.atomic.rmw8_u.xor -> i64.atomic.rmw8.xor_u
i64.atomic.rmw16_u.xor -> i64.atomic.rmw16.xor_u
i64.atomic.rmw32_u.xor -> i64.atomic.rmw32.xor_u
i32.atomic.rmw8_u.xchg -> i32.atomic.rmw8.xchg_u
i32.atomic.rmw16_u.xchg -> i32.atomic.rmw16.xchg_u
i64.atomic.rmw8_u.xchg -> i64.atomic.rmw8.xchg_u
i64.atomic.rmw16_u.xchg -> i64.atomic.rmw16.xchg_u
i64.atomic.rmw32_u.xchg -> i64.atomic.rmw32.xchg_u
i32.atomic.rmw8_u.cmpxchg -> i32.atomic.rmw8.cmpxchg_u
i32.atomic.rmw16_u.cmpxchg -> i32.atomic.rmw16.cmpxchg_u
i64.atomic.rmw8_u.cmpxchg -> i64.atomic.rmw8.cmpxchg_u
i64.atomic.rmw16_u.cmpxchg -> i64.atomic.rmw16.cmpxchg_u
i64.atomic.rmw32_u.cmpxchg -> i64.atomic.rmw32.cmpxchg_u

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions