i64.extend8_s
Pops an i64 value off the stack, only looks at the first 8 bits, converts it into an i64 value, and then pushes it back on to the stack. This only looks at the first 8 bits of the 64 bit integer. The other bits are lost. The 8th bit is used as a sign flag, therefore it is treated as a signed 8 bit number.

Syntax

i64.extend8_s

Stack In

i64 The value to be converted.

Stack Out

i64 The i64 version of the first 8 bits of the i64 value.

Examples

;; Convert i64 0b00000001 (1) into an i64 value
i64.const 1
i64.extend8_s

;; The stack contains an i64 value of 0b00000001
;; Convert i64 0b11110000_00001001 (0xF009) into an i64 value
i64.const 0xF009
i64.extend8_s

;; The stack contains an i64 value of 0b00000101
;; Convert i64 0b10001001 (0x89, -119 as signed byte) into an i64 value
i64.const 0x89
i64.extend8_s

;; The stack contains an i64 value of 0b11111111_10000101 (-119 as signed
;; 64 bit integer)