forked from OSchip/llvm-project
Reland "[WebAssembly] More uses of uint8_t for single byte values"
Summary: Original change was D43991 (rL326541) and was reverted by rL326571 and rL326572. This adds also the necessary MCCodeEmitter patch. Reviewers: sbc100 Subscribers: jfb, dschuff, sbc100, jgravelle-google, sunfish, llvm-commits, ncw Differential Revision: https://reviews.llvm.org/D44034 llvm-svn: 326614
This commit is contained in:
parent
db16beed8a
commit
0c69a3e3d9
|
@ -93,7 +93,7 @@ void WebAssemblyMCCodeEmitter::encodeInstruction(
|
|||
} else if (Info.OperandType == WebAssembly::OPERAND_GLOBAL) {
|
||||
llvm_unreachable("wasm globals should only be accessed symbolicly");
|
||||
} else if (Info.OperandType == WebAssembly::OPERAND_SIGNATURE) {
|
||||
encodeSLEB128(int64_t(MO.getImm()), OS);
|
||||
OS << uint8_t(MO.getImm());
|
||||
} else {
|
||||
encodeULEB128(uint64_t(MO.getImm()), OS);
|
||||
}
|
||||
|
|
|
@ -158,19 +158,19 @@ static const unsigned LoadP2AlignOperandNo = 1;
|
|||
static const unsigned StoreP2AlignOperandNo = 0;
|
||||
|
||||
/// This is used to indicate block signatures.
|
||||
enum class ExprType {
|
||||
Void = -0x40,
|
||||
I32 = -0x01,
|
||||
I64 = -0x02,
|
||||
F32 = -0x03,
|
||||
F64 = -0x04,
|
||||
I8x16 = -0x05,
|
||||
I16x8 = -0x06,
|
||||
I32x4 = -0x07,
|
||||
F32x4 = -0x08,
|
||||
B8x16 = -0x09,
|
||||
B16x8 = -0x0a,
|
||||
B32x4 = -0x0b
|
||||
enum class ExprType : unsigned {
|
||||
Void = 0x40,
|
||||
I32 = 0x7F,
|
||||
I64 = 0x7E,
|
||||
F32 = 0x7D,
|
||||
F64 = 0x7C,
|
||||
I8x16 = 0x7B,
|
||||
I16x8 = 0x7A,
|
||||
I32x4 = 0x79,
|
||||
F32x4 = 0x78,
|
||||
B8x16 = 0x77,
|
||||
B16x8 = 0x76,
|
||||
B32x4 = 0x75
|
||||
};
|
||||
|
||||
/// Instruction opcodes emitted via means other than CodeGen.
|
||||
|
|
Loading…
Reference in New Issue