Skip to content

Commit 8af7ebe

Browse files
authored
Merge pull request #8 from whirlicote/patch-4
move opcodes to three byte encoding space
2 parents 7a666ad + d19cade commit 8af7ebe

File tree

1 file changed

+62
-62
lines changed

1 file changed

+62
-62
lines changed

proposals/rounding-mode-control/Overview.md

Lines changed: 62 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -47,68 +47,68 @@ There are other options for rounding namely:
4747

4848
This proposal proposes to extend the matrix of floating point instructions by combining them with a new dimension called a rounding variant. This results in the following new instructions:
4949

50-
|prefix|opcode|opcode binary|name | pretty string |
51-
|------|-------|--------------|----------------------|---------------------|
52-
| 0xFC | 0x20 | 0b00100000 | f32.sqrt_ceil | sqrt_ceil |
53-
| 0xFC | 0x21 | 0b00100001 | f32.add_ceil | +_ceil |
54-
| 0xFC | 0x22 | 0b00100010 | f32.sub_ceil | -_ceil |
55-
| 0xFC | 0x23 | 0b00100011 | f32.mul_ceil | *_ceil |
56-
| 0xFC | 0x24 | 0b00100100 | f32.div_ceil | /_ceil |
57-
| 0xFC | 0x25 | 0b00100101 | f64.sqrt_ceil | sqrt_ceil |
58-
| 0xFC | 0x26 | 0b00100110 | f64.add_ceil | +_ceil |
59-
| 0xFC | 0x27 | 0b00100111 | f64.sub_ceil | -_ceil |
60-
| 0xFC | 0x28 | 0b00101000 | f64.mul_ceil | *_ceil |
61-
| 0xFC | 0x29 | 0b00101001 | f64.div_ceil | /_ceil |
62-
| 0xFC | 0x32 | 0b00110010 | f32.convert_i32_s_ceil | convert_i32_s_ceil |
63-
| 0xFC | 0x33 | 0b00110011 | f32.convert_i32_u_ceil | convert_i32_u_ceil |
64-
| 0xFC | 0x34 | 0b00110100 | f32.convert_i64_s_ceil | convert_i64_s_ceil |
65-
| 0xFC | 0x35 | 0b00110101 | f32.convert_i64_u_ceil | convert_i64_u_ceil |
66-
| 0xFC | 0x36 | 0b00110110 | f32.demote_f64_ceil | demote_f64_ceil |
67-
| 0xFC | 0x37 | 0b00110111 | f64.convert_i32_s_ceil | convert_i32_s_ceil |
68-
| 0xFC | 0x38 | 0b00111000 | f64.convert_i32_u_ceil | convert_i32_u_ceil |
69-
| 0xFC | 0x39 | 0b00111001 | f64.convert_i64_s_ceil | convert_i64_s_ceil |
70-
| 0xFC | 0x3A | 0b00111010 | f64.convert_i64_u_ceil | convert_i64_u_ceil |
71-
| 0xFC | 0x3B | 0b00111011 | f64.promote_f32_ceil | promote_f32_ceil |
72-
| 0xFC | 0x40 | 0b01000000 | f32.sqrt_floor | sqrt_floor |
73-
| 0xFC | 0x41 | 0b01000001 | f32.add_floor | +_floor |
74-
| 0xFC | 0x42 | 0b01000010 | f32.sub_floor | -_floor |
75-
| 0xFC | 0x43 | 0b01000011 | f32.mul_floor | *_floor |
76-
| 0xFC | 0x44 | 0b01000100 | f32.div_floor | /_floor |
77-
| 0xFC | 0x45 | 0b01000101 | f64.sqrt_floor | sqrt_floor |
78-
| 0xFC | 0x46 | 0b01000110 | f64.add_floor | +_floor |
79-
| 0xFC | 0x47 | 0b01000111 | f64.sub_floor | -_floor |
80-
| 0xFC | 0x48 | 0b01001000 | f64.mul_floor | *_floor |
81-
| 0xFC | 0x49 | 0b01001001 | f64.div_floor | /_floor |
82-
| 0xFC | 0x52 | 0b01010010 | f32.convert_i32_s_floor | convert_i32_s_floor |
83-
| 0xFC | 0x53 | 0b01010011 | f32.convert_i32_u_floor | convert_i32_u_floor |
84-
| 0xFC | 0x54 | 0b01010100 | f32.convert_i64_s_floor | convert_i64_s_floor |
85-
| 0xFC | 0x55 | 0b01010101 | f32.convert_i64_u_floor | convert_i64_u_floor |
86-
| 0xFC | 0x56 | 0b01010110 | f32.demote_f64_floor | demote_f64_floor |
87-
| 0xFC | 0x57 | 0b01010111 | f64.convert_i32_s_floor | convert_i32_s_floor |
88-
| 0xFC | 0x58 | 0b01011000 | f64.convert_i32_u_floor | convert_i32_u_floor |
89-
| 0xFC | 0x59 | 0b01011001 | f64.convert_i64_s_floor | convert_i64_s_floor |
90-
| 0xFC | 0x5A | 0b01011010 | f64.convert_i64_u_floor | convert_i64_u_floor |
91-
| 0xFC | 0x5B | 0b01011011 | f64.promote_f32_floor | promote_f32_floor |
92-
| 0xFC | 0x60 | 0b01100000 | f32.sqrt_trunc | sqrt_trunc |
93-
| 0xFC | 0x61 | 0b01100001 | f32.add_trunc | +_trunc |
94-
| 0xFC | 0x62 | 0b01100010 | f32.sub_trunc | -_trunc |
95-
| 0xFC | 0x63 | 0b01100011 | f32.mul_trunc | *_trunc |
96-
| 0xFC | 0x64 | 0b01100100 | f32.div_trunc | /_trunc |
97-
| 0xFC | 0x65 | 0b01100101 | f64.sqrt_trunc | sqrt_trunc |
98-
| 0xFC | 0x66 | 0b01100110 | f64.add_trunc | +_trunc |
99-
| 0xFC | 0x67 | 0b01100111 | f64.sub_trunc | -_trunc |
100-
| 0xFC | 0x68 | 0b01101000 | f64.mul_trunc | *_trunc |
101-
| 0xFC | 0x69 | 0b01101001 | f64.div_trunc | /_trunc |
102-
| 0xFC | 0x72 | 0b01110010 | f32.convert_i32_s_trunc | convert_i32_s_trunc |
103-
| 0xFC | 0x73 | 0b01110011 | f32.convert_i32_u_trunc | convert_i32_u_trunc |
104-
| 0xFC | 0x74 | 0b01110100 | f32.convert_i64_s_trunc | convert_i64_s_trunc |
105-
| 0xFC | 0x75 | 0b01110101 | f32.convert_i64_u_trunc | convert_i64_u_trunc |
106-
| 0xFC | 0x76 | 0b01110110 | f32.demote_f64_trunc | demote_f64_trunc |
107-
| 0xFC | 0x77 | 0b01110111 | f64.convert_i32_s_trunc | convert_i32_s_trunc |
108-
| 0xFC | 0x78 | 0b01111000 | f64.convert_i32_u_trunc | convert_i32_u_trunc |
109-
| 0xFC | 0x79 | 0b01111001 | f64.convert_i64_s_trunc | convert_i64_s_trunc |
110-
| 0xFC | 0x7A | 0b01111010 | f64.convert_i64_u_trunc | convert_i64_u_trunc |
111-
| 0xFC | 0x7B | 0b01111011 | f64.promote_f32_trunc | promote_f32_trunc |
50+
|prefix|opcode| binary | name | pretty string |
51+
|------|------|-------------|-------------------------|---------------------|
52+
| 0xFC | 0x80 | 0b1'0000000 | f32.sqrt_ceil | sqrt_ceil |
53+
| 0xFC | 0x81 | 0b1'0000001 | f32.add_ceil | +_ceil |
54+
| 0xFC | 0x82 | 0b1'0000010 | f32.sub_ceil | -_ceil |
55+
| 0xFC | 0x83 | 0b1'0000011 | f32.mul_ceil | *_ceil |
56+
| 0xFC | 0x84 | 0b1'0000100 | f32.div_ceil | /_ceil |
57+
| 0xFC | 0x85 | 0b1'0000101 | f64.sqrt_ceil | sqrt_ceil |
58+
| 0xFC | 0x86 | 0b1'0000110 | f64.add_ceil | +_ceil |
59+
| 0xFC | 0x87 | 0b1'0000111 | f64.sub_ceil | -_ceil |
60+
| 0xFC | 0x88 | 0b1'0001000 | f64.mul_ceil | *_ceil |
61+
| 0xFC | 0x89 | 0b1'0001001 | f64.div_ceil | /_ceil |
62+
| 0xFC | 0x8a | 0b1'0001010 | f32.convert_i32_s_ceil | convert_i32_s_ceil |
63+
| 0xFC | 0x8b | 0b1'0001011 | f32.convert_i32_u_ceil | convert_i32_u_ceil |
64+
| 0xFC | 0x8c | 0b1'0001100 | f32.convert_i64_s_ceil | convert_i64_s_ceil |
65+
| 0xFC | 0x8d | 0b1'0001101 | f32.convert_i64_u_ceil | convert_i64_u_ceil |
66+
| 0xFC | 0x8e | 0b1'0001110 | f32.demote_f64_ceil | demote_f64_ceil |
67+
| 0xFC | 0x8f | 0b1'0001111 | f64.convert_i32_s_ceil | convert_i32_s_ceil |
68+
| 0xFC | 0x90 | 0b1'0010000 | f64.convert_i32_u_ceil | convert_i32_u_ceil |
69+
| 0xFC | 0x91 | 0b1'0010001 | f64.convert_i64_s_ceil | convert_i64_s_ceil |
70+
| 0xFC | 0x92 | 0b1'0010010 | f64.convert_i64_u_ceil | convert_i64_u_ceil |
71+
| 0xFC | 0x93 | 0b1'0010011 | f64.promote_f32_ceil | promote_f32_ceil |
72+
| 0xFC | 0x94 | 0b1'0010100 | f32.sqrt_floor | sqrt_floor |
73+
| 0xFC | 0x95 | 0b1'0010101 | f32.add_floor | +_floor |
74+
| 0xFC | 0x96 | 0b1'0010110 | f32.sub_floor | -_floor |
75+
| 0xFC | 0x97 | 0b1'0010111 | f32.mul_floor | *_floor |
76+
| 0xFC | 0x98 | 0b1'0011000 | f32.div_floor | /_floor |
77+
| 0xFC | 0x99 | 0b1'0011001 | f64.sqrt_floor | sqrt_floor |
78+
| 0xFC | 0x9a | 0b1'0011010 | f64.add_floor | +_floor |
79+
| 0xFC | 0x9b | 0b1'0011011 | f64.sub_floor | -_floor |
80+
| 0xFC | 0x9c | 0b1'0011100 | f64.mul_floor | *_floor |
81+
| 0xFC | 0x9d | 0b1'0011101 | f64.div_floor | /_floor |
82+
| 0xFC | 0x9e | 0b1'0011110 | f32.convert_i32_s_floor | convert_i32_s_floor |
83+
| 0xFC | 0x9f | 0b1'0011111 | f32.convert_i32_u_floor | convert_i32_u_floor |
84+
| 0xFC | 0xa0 | 0b1'0100000 | f32.convert_i64_s_floor | convert_i64_s_floor |
85+
| 0xFC | 0xa1 | 0b1'0100001 | f32.convert_i64_u_floor | convert_i64_u_floor |
86+
| 0xFC | 0xa2 | 0b1'0100010 | f32.demote_f64_floor | demote_f64_floor |
87+
| 0xFC | 0xa3 | 0b1'0100011 | f64.convert_i32_s_floor | convert_i32_s_floor |
88+
| 0xFC | 0xa4 | 0b1'0100100 | f64.convert_i32_u_floor | convert_i32_u_floor |
89+
| 0xFC | 0xa5 | 0b1'0100101 | f64.convert_i64_s_floor | convert_i64_s_floor |
90+
| 0xFC | 0xa6 | 0b1'0100110 | f64.convert_i64_u_floor | convert_i64_u_floor |
91+
| 0xFC | 0xa7 | 0b1'0100111 | f64.promote_f32_floor | promote_f32_floor |
92+
| 0xFC | 0xa8 | 0b1'0101000 | f32.sqrt_trunc | sqrt_trunc |
93+
| 0xFC | 0xa9 | 0b1'0101001 | f32.add_trunc | +_trunc |
94+
| 0xFC | 0xaa | 0b1'0101010 | f32.sub_trunc | -_trunc |
95+
| 0xFC | 0xab | 0b1'0101011 | f32.mul_trunc | *_trunc |
96+
| 0xFC | 0xac | 0b1'0101100 | f32.div_trunc | /_trunc |
97+
| 0xFC | 0xad | 0b1'0101101 | f64.sqrt_trunc | sqrt_trunc |
98+
| 0xFC | 0xae | 0b1'0101110 | f64.add_trunc | +_trunc |
99+
| 0xFC | 0xaf | 0b1'0101111 | f64.sub_trunc | -_trunc |
100+
| 0xFC | 0xb0 | 0b1'0110000 | f64.mul_trunc | *_trunc |
101+
| 0xFC | 0xb1 | 0b1'0110001 | f64.div_trunc | /_trunc |
102+
| 0xFC | 0xb2 | 0b1'0110010 | f32.convert_i32_s_trunc | convert_i32_s_trunc |
103+
| 0xFC | 0xb3 | 0b1'0110011 | f32.convert_i32_u_trunc | convert_i32_u_trunc |
104+
| 0xFC | 0xb4 | 0b1'0110100 | f32.convert_i64_s_trunc | convert_i64_s_trunc |
105+
| 0xFC | 0xb5 | 0b1'0110101 | f32.convert_i64_u_trunc | convert_i64_u_trunc |
106+
| 0xFC | 0xb6 | 0b1'0110110 | f32.demote_f64_trunc | demote_f64_trunc |
107+
| 0xFC | 0xb7 | 0b1'0110111 | f64.convert_i32_s_trunc | convert_i32_s_trunc |
108+
| 0xFC | 0xb8 | 0b1'0111000 | f64.convert_i32_u_trunc | convert_i32_u_trunc |
109+
| 0xFC | 0xb9 | 0b1'0111001 | f64.convert_i64_s_trunc | convert_i64_s_trunc |
110+
| 0xFC | 0xba | 0b1'0111010 | f64.convert_i64_u_trunc | convert_i64_u_trunc |
111+
| 0xFC | 0xbb | 0b1'0111011 | f64.promote_f32_trunc | promote_f32_trunc |
112112

113113
## Semantics
114114

0 commit comments

Comments
 (0)