mirror of
				https://github.com/tc39/test262.git
				synced 2025-11-03 21:24:30 +01:00 
			
		
		
		
	sourceRevisionAtLastExport: 33f2fb0e53d135f0ee17cfccd9d993eb2a6f47de targetRevisionAtLastExport: 31340cbd9add103f586d501b0c3354b7b182abc0
		
			
				
	
	
		
			329 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			329 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Copyright 2016 the V8 project authors. All rights reserved.
 | 
						|
// Use of this source code is governed by a BSD-style license that can be
 | 
						|
// found in the LICENSE file.
 | 
						|
 | 
						|
// Flags: --expose-wasm
 | 
						|
 | 
						|
load("test/mjsunit/wasm/wasm-constants.js");
 | 
						|
load("test/mjsunit/wasm/wasm-module-builder.js");
 | 
						|
 | 
						|
// Non-standard opcodes.
 | 
						|
let kSig_s_v = makeSig([], [kWasmS128]);
 | 
						|
let kExprS128LoadMem = 0xc0;
 | 
						|
 | 
						|
(function() {
 | 
						|
"use asm";
 | 
						|
var builder = new WasmModuleBuilder();
 | 
						|
builder.addFunction("regression_648079", kSig_s_v)
 | 
						|
  .addBody([
 | 
						|
    // locals:
 | 
						|
    0x00,
 | 
						|
    // body:
 | 
						|
    kExprI64RemU,
 | 
						|
    kExprI64Ctz,
 | 
						|
    kExprI64LeU,
 | 
						|
    kExprUnreachable,
 | 
						|
    kExprUnreachable,
 | 
						|
    kExprUnreachable,
 | 
						|
    kExprUnreachable,
 | 
						|
    kExprI64Ctz,
 | 
						|
    kExprI64Ne,
 | 
						|
    kExprI64ShrS,
 | 
						|
    kExprI64GtS,
 | 
						|
    kExprI64RemU,
 | 
						|
    kExprUnreachable,
 | 
						|
    kExprI64RemU,
 | 
						|
    kExprI32Eqz,
 | 
						|
    kExprI64LeU,
 | 
						|
    kExprDrop,
 | 
						|
    kExprF32Add,
 | 
						|
    kExprI64Ior,
 | 
						|
    kExprF32CopySign,
 | 
						|
    kExprI64Ne,
 | 
						|
    kExprI64GeS,
 | 
						|
    kExprUnreachable,
 | 
						|
    kExprF32Trunc,
 | 
						|
    kExprF32Trunc,
 | 
						|
    kExprUnreachable,
 | 
						|
    kExprIf, 10,   // @32
 | 
						|
      kExprBlock, 00,   // @34
 | 
						|
        kExprBr,   // depth=109
 | 
						|
        kExprI64Shl,
 | 
						|
        kExprI64LeU,
 | 
						|
        kExprI64GeS,
 | 
						|
        kExprI64Clz,
 | 
						|
        kExprF32Min,
 | 
						|
        kExprF32Eq,
 | 
						|
        kExprF32Trunc,
 | 
						|
        kExprF32Trunc,
 | 
						|
        kExprF32Trunc,
 | 
						|
        kExprUnreachable,
 | 
						|
        kExprI32Const,
 | 
						|
        kExprUnreachable,
 | 
						|
        kExprBr,   // depth=101
 | 
						|
        kExprF32Div,
 | 
						|
        kExprI64GtU,
 | 
						|
        kExprI64GeS,
 | 
						|
        kExprI64Clz,
 | 
						|
        kExprSelect,
 | 
						|
        kExprI64GtS,
 | 
						|
        kExprI64RemU,
 | 
						|
        kExprI64LeU,
 | 
						|
        kExprI64Shl,
 | 
						|
        kExprI64Ctz,
 | 
						|
        kExprLoop, 01,   // @63 i32
 | 
						|
        kExprElse,   // @65
 | 
						|
          kExprI64LeU,
 | 
						|
          kExprI64RemU,
 | 
						|
          kExprI64Ne,
 | 
						|
          kExprI64GeS,
 | 
						|
          kExprI32Const,
 | 
						|
          kExprI64GtS,
 | 
						|
          kExprI64LoadMem32U,
 | 
						|
          kExprI64Clz,
 | 
						|
          kExprI64Shl,
 | 
						|
          kExprI64Ne,
 | 
						|
          kExprI64ShrS,
 | 
						|
          kExprI64GtS,
 | 
						|
          kExprI64DivU,
 | 
						|
          kExprI64Ne,
 | 
						|
          kExprI64GtS,
 | 
						|
          kExprI64Ne,
 | 
						|
          kExprI64Popcnt,
 | 
						|
          kExprI64DivU,
 | 
						|
          kExprI64DivU,
 | 
						|
          kExprSelect,
 | 
						|
          kExprI64Ctz,
 | 
						|
          kExprI64Popcnt,
 | 
						|
          kExprI64RemU,
 | 
						|
          kExprI64Clz,
 | 
						|
          kExprF64Sub,
 | 
						|
          kExprF32Trunc,
 | 
						|
          kExprF32Trunc,
 | 
						|
          kExprI64RemU,
 | 
						|
          kExprI64Ctz,
 | 
						|
          kExprI64LeU,
 | 
						|
          kExprUnreachable,
 | 
						|
          kExprUnreachable,
 | 
						|
          kExprUnreachable,
 | 
						|
          kExprBrIf,   // depth=116
 | 
						|
          kExprF32Min,
 | 
						|
          kExprI64GtU,
 | 
						|
          kExprBlock, 01,   // @107 i32
 | 
						|
            kExprTeeLocal,
 | 
						|
            kExprBlock, 01,   // @111 i32
 | 
						|
              kExprBlock, 01,   // @113 i32
 | 
						|
                kExprBlock, 01,   // @115 i32
 | 
						|
                  kExprBlock, 01,   // @117 i32
 | 
						|
                    kExprBlock, 01,   // @119 i32
 | 
						|
                      kExprBlock, 01,   // @121 i32
 | 
						|
                        kExprBlock, 01,   // @123 i32
 | 
						|
                          kExprBlock, 88,   // @125
 | 
						|
                            kExprF32Trunc,
 | 
						|
                            kExprF32Trunc,
 | 
						|
                            kExprF32Trunc,
 | 
						|
                            kExprUnreachable,
 | 
						|
                            kExprLoop, 40,   // @131
 | 
						|
                              kExprUnreachable,
 | 
						|
                              kExprUnreachable,
 | 
						|
                              kExprI32Add,
 | 
						|
                              kExprBlock, 05,   // @136
 | 
						|
                                kExprUnreachable,
 | 
						|
                                kExprIf, 02,   // @139 i64
 | 
						|
                                  kExprBlock, 01,   // @141 i32
 | 
						|
                                    kExprBrIf,   // depth=16
 | 
						|
                                    kExprLoop, 00,   // @145
 | 
						|
                                      kExprUnreachable,
 | 
						|
                                      kExprUnreachable,
 | 
						|
                                      kExprReturn,
 | 
						|
                                      kExprUnreachable,
 | 
						|
                                      kExprUnreachable,
 | 
						|
                                      kExprUnreachable,
 | 
						|
                                      kExprI64LoadMem16U,
 | 
						|
                                      kExprUnreachable,
 | 
						|
                                      kExprUnreachable,
 | 
						|
                                      kExprUnreachable,
 | 
						|
                                      kExprUnreachable,
 | 
						|
                                      kExprUnreachable,
 | 
						|
                                      kExprNop,
 | 
						|
                                      kExprBr,   // depth=1
 | 
						|
                                    kExprElse,   // @164
 | 
						|
                                      kExprF32Trunc,
 | 
						|
                                      kExprI32Add,
 | 
						|
                                      kExprCallIndirect,   // sig #1
 | 
						|
                                      kExprUnreachable,
 | 
						|
                                      kExprUnreachable,
 | 
						|
                                      kExprUnreachable,
 | 
						|
                                      kExprBlock, 00,   // @172
 | 
						|
                                        kExprI64RemU,
 | 
						|
                                        kExprI64Ctz,
 | 
						|
                                        kExprI64LeU,
 | 
						|
                                        kExprUnreachable,
 | 
						|
                                        kExprUnreachable,
 | 
						|
                                        kExprUnreachable,
 | 
						|
                                        kExprUnreachable,
 | 
						|
                                        kExprUnreachable,
 | 
						|
                                        kExprDrop,
 | 
						|
                                        kExprI64Popcnt,
 | 
						|
                                        kExprF32Min,
 | 
						|
                                        kExprUnreachable,
 | 
						|
                                        kExprF64Sub,
 | 
						|
                                        kExprI32Const,
 | 
						|
                                        kExprUnreachable,
 | 
						|
                                        kExprGetLocal,
 | 
						|
                                        kExprI64LoadMem32U,
 | 
						|
                                        kExprUnreachable,
 | 
						|
                                        kExprI64RemU,
 | 
						|
                                        kExprI32Eqz,
 | 
						|
                                        kExprI64LeU,
 | 
						|
                                        kExprDrop,
 | 
						|
                                        kExprF32Add,
 | 
						|
                                        kExprI64Ior,
 | 
						|
                                        kExprF32CopySign,
 | 
						|
                                        kExprI64Ne,
 | 
						|
                                        kExprI64GeS,
 | 
						|
                                        kExprUnreachable,
 | 
						|
                                        kExprF32Trunc,
 | 
						|
                                        kExprF32Trunc,
 | 
						|
                                        kExprUnreachable,
 | 
						|
                                        kExprIf, 10,   // @216
 | 
						|
                                          kExprBlock, 00,   // @218
 | 
						|
                                            kExprBr,   // depth=109
 | 
						|
                                            kExprI64Shl,
 | 
						|
                                            kExprI64LeU,
 | 
						|
                                            kExprI64GeS,
 | 
						|
                                            kExprI64Clz,
 | 
						|
                                            kExprF32Min,
 | 
						|
                                            kExprF32Eq,
 | 
						|
                                            kExprF32Trunc,
 | 
						|
                                            kExprF32Trunc,
 | 
						|
                                            kExprF32Trunc,
 | 
						|
                                            kExprUnreachable,
 | 
						|
                                            kExprF64Min,
 | 
						|
                                            kExprI32Const,
 | 
						|
                                            kExprBr,   // depth=101
 | 
						|
                                            kExprF32Div,
 | 
						|
                                            kExprI64GtU,
 | 
						|
                                            kExprI64GeS,
 | 
						|
                                            kExprI64Clz,
 | 
						|
                                            kExprI64Popcnt,
 | 
						|
                                            kExprF64Lt,
 | 
						|
                                            kExprF32Trunc,
 | 
						|
                                            kExprF32Trunc,
 | 
						|
                                            kExprF32Trunc,
 | 
						|
                                            kExprUnreachable,
 | 
						|
                                            kExprLoop, 01,   // @247 i32
 | 
						|
                                            kExprElse,   // @249
 | 
						|
                                              kExprI64LeU,
 | 
						|
                                              kExprI64RemU,
 | 
						|
                                              kExprI64Ne,
 | 
						|
                                              kExprI64GeS,
 | 
						|
                                              kExprI32Const,
 | 
						|
                                              kExprBlock, 01,   // @256 i32
 | 
						|
                                                kExprBlock, 01,   // @258 i32
 | 
						|
                                                  kExprBlock, 01,   // @260 i32
 | 
						|
                                                    kExprBlock, 01,   // @262 i32
 | 
						|
                                                      kExprBlock, 01,   // @264 i32
 | 
						|
                                                        kExprF32Ge,
 | 
						|
                                                        kExprF32Trunc,
 | 
						|
                                                        kExprF32Trunc,
 | 
						|
                                                        kExprF32Trunc,
 | 
						|
                                                        kExprUnreachable,
 | 
						|
                                                        kExprLoop, 40,   // @271
 | 
						|
                                                          kExprUnreachable,
 | 
						|
                                                          kExprUnreachable,
 | 
						|
                                                          kExprI32Add,
 | 
						|
                                                          kExprBlock, 01,   // @276 i32
 | 
						|
                                                            kExprUnreachable,
 | 
						|
                                                            kExprIf, 02,   // @279 i64
 | 
						|
                                                              kExprBlock, 00,   // @281
 | 
						|
                                                                kExprBrIf,   // depth=16
 | 
						|
                                                                kExprLoop, 00,   // @285
 | 
						|
                                                                  kExprUnreachable,
 | 
						|
                                                                  kExprUnreachable,
 | 
						|
                                                                  kExprReturn,
 | 
						|
                                                                  kExprUnreachable,
 | 
						|
                                                                  kExprUnreachable,
 | 
						|
                                                                  kExprUnreachable,
 | 
						|
                                                                  kExprI64LoadMem16U,
 | 
						|
                                                                  kExprUnreachable,
 | 
						|
                                                                  kExprUnreachable,
 | 
						|
                                                                  kExprUnreachable,
 | 
						|
                                                                  kExprUnreachable,
 | 
						|
                                                                  kExprUnreachable,
 | 
						|
                                                                  kExprNop,
 | 
						|
                                                                  kExprBr,   // depth=1
 | 
						|
                                                                kExprElse,   // @304
 | 
						|
                                                                  kExprF32Trunc,
 | 
						|
                                                                  kExprI32Add,
 | 
						|
                                                                  kExprCallIndirect,   // sig #1
 | 
						|
                                                                  kExprUnreachable,
 | 
						|
                                                                  kExprUnreachable,
 | 
						|
                                                                  kExprUnreachable,
 | 
						|
                                                                  kExprBlock, 00,   // @312
 | 
						|
                                                                    kExprI64RemU,
 | 
						|
                                                                    kExprI64Ctz,
 | 
						|
                                                                    kExprI64LeU,
 | 
						|
                                                                    kExprUnreachable,
 | 
						|
                                                                    kExprUnreachable,
 | 
						|
                                                                    kExprUnreachable,
 | 
						|
                                                                    kExprDrop,
 | 
						|
                                                                    kExprI64Popcnt,
 | 
						|
                                                                    kExprF32Min,
 | 
						|
                                                                    kExprUnreachable,
 | 
						|
                                                                    kExprF64Sub,
 | 
						|
                                                                    kExprI32Const,
 | 
						|
                                                                    kExprUnreachable,
 | 
						|
                                                                    kExprGetLocal,
 | 
						|
                                                                    kExprI64LoadMem32U,
 | 
						|
                                                                    kExprUnreachable,
 | 
						|
                                                                    kExprUnreachable,
 | 
						|
                                                                    kExprNop,
 | 
						|
                                                                    kExprBr,   // depth=1
 | 
						|
                                                                  kExprElse,   // @348
 | 
						|
                                                                    kExprF32Trunc,
 | 
						|
                                                                    kExprI32Add,
 | 
						|
                                                                    kExprCallIndirect,   // sig #1
 | 
						|
                                                                    kExprUnreachable,
 | 
						|
                                                                    kExprUnreachable,
 | 
						|
                                                                    kExprUnreachable,
 | 
						|
                                                                    kExprBlock, 00,   // @356
 | 
						|
                                                                    kExprI64RemU,
 | 
						|
                                                                    kExprI64Ctz,
 | 
						|
                                                                    kExprI64LeU,
 | 
						|
                                                                    kExprUnreachable,
 | 
						|
                                                                    kExprUnreachable,
 | 
						|
                                                                    kExprUnreachable,
 | 
						|
                                                                    kExprDrop,
 | 
						|
                                                                    kExprI64Popcnt,
 | 
						|
                                                                    kExprF32Min,
 | 
						|
                                                                    kExprUnreachable,
 | 
						|
                                                                    kExprF64Sub,
 | 
						|
                                                                    kExprI32Const,
 | 
						|
                                                                    kExprUnreachable,
 | 
						|
                                                                    kExprGetLocal,
 | 
						|
                                                                    kExprI64LoadMem32U,
 | 
						|
                                                                    kExprF64Min,
 | 
						|
                                                                    kExprF64Min,
 | 
						|
                                                                    kExprF64Min,
 | 
						|
                                                                    kExprF64Min,
 | 
						|
                                                                    kExprF64Min,
 | 
						|
                                                                    kExprF32Trunc,
 | 
						|
                                                                    kExprF32Trunc,
 | 
						|
                                                                    kExprF32Trunc,
 | 
						|
                                                                    kExprUnreachable,
 | 
						|
                                                                    kExprF64Min,
 | 
						|
                                                                    kExprF64Min,
 | 
						|
                                                                    kExprF64Min,
 | 
						|
                                                                    kExprF64Min,
 | 
						|
                                                                    kExprF64Min,
 | 
						|
                                                                    kExprF64Min,
 | 
						|
                                                                    kExprF64Min,
 | 
						|
                                                                    kExprF64Min,
 | 
						|
                                                                    kExprF64Min,
 | 
						|
                                                                    kExprF64Min,
 | 
						|
            ])
 | 
						|
            .exportFunc();
 | 
						|
assertThrows(function() { builder.instantiate(); });
 | 
						|
})();
 |