ed592eb03f
Moves the feedback vector slot allocation out of ast-numbering and into bytecode generation directly. This has a couple of benifits, including reduced AST size, avoid code duplication and reduced feedback vector sizes in many cases due to only allocating slots when needed. Also removes AstProperties since this is no longer needed. AstNumbering is now only used to allocate suspend ids for generators. BUG=v8:6921 Change-Id: I103e8593c94ef5b2e56c34ef4f77bd6e7d64796f Reviewed-on: https://chromium-review.googlesource.com/722959 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48757}
388 lines
12 KiB
Plaintext
388 lines
12 KiB
Plaintext
#
|
|
# Autogenerated by generate-bytecode-expectations.
|
|
#
|
|
|
|
---
|
|
wrap: no
|
|
test function name: f
|
|
|
|
---
|
|
snippet: "
|
|
function f(a) { return a.func(); }
|
|
f(new (function Obj() { this.func = function() { return; }})())
|
|
"
|
|
frame size: 1
|
|
parameter count: 2
|
|
bytecode array length: 12
|
|
bytecodes: [
|
|
/* 10 E> */ B(StackCheck),
|
|
/* 25 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0),
|
|
B(Star), R(0),
|
|
/* 25 E> */ B(CallProperty0), R(0), R(arg0), U8(2),
|
|
/* 32 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["func"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
function f(a, b, c) { return a.func(b, c); }
|
|
f(new (function Obj() { this.func = function() { return; }})(), 1, 2)
|
|
"
|
|
frame size: 1
|
|
parameter count: 4
|
|
bytecode array length: 14
|
|
bytecodes: [
|
|
/* 10 E> */ B(StackCheck),
|
|
/* 31 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0),
|
|
B(Star), R(0),
|
|
/* 31 E> */ B(CallProperty2), R(0), R(arg0), R(arg1), R(arg2), U8(2),
|
|
/* 42 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["func"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
function f(a, b) { return a.func(b + b, b); }
|
|
f(new (function Obj() { this.func = function() { return; }})(), 1)
|
|
"
|
|
frame size: 3
|
|
parameter count: 3
|
|
bytecode array length: 21
|
|
bytecodes: [
|
|
/* 10 E> */ B(StackCheck),
|
|
/* 28 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0),
|
|
B(Star), R(0),
|
|
B(Ldar), R(arg1),
|
|
/* 35 E> */ B(Add), R(arg1), U8(2),
|
|
B(Star), R(2),
|
|
/* 28 E> */ B(CallProperty2), R(0), R(arg0), R(2), R(arg1), U8(3),
|
|
/* 43 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["func"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
function f(a) {
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
return a.func(); }
|
|
f(new (function Obj() { this.func = function() { return; }})())
|
|
"
|
|
frame size: 1
|
|
parameter count: 2
|
|
bytecode array length: 532
|
|
bytecodes: [
|
|
/* 10 E> */ B(StackCheck),
|
|
/* 19 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0),
|
|
/* 28 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(2),
|
|
/* 37 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(4),
|
|
/* 46 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(6),
|
|
/* 55 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(8),
|
|
/* 64 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(10),
|
|
/* 73 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(12),
|
|
/* 82 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(14),
|
|
/* 91 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(16),
|
|
/* 100 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(18),
|
|
/* 109 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(20),
|
|
/* 118 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(22),
|
|
/* 127 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(24),
|
|
/* 136 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(26),
|
|
/* 145 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(28),
|
|
/* 154 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(30),
|
|
/* 163 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(32),
|
|
/* 172 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(34),
|
|
/* 181 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(36),
|
|
/* 190 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(38),
|
|
/* 199 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(40),
|
|
/* 208 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(42),
|
|
/* 217 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(44),
|
|
/* 226 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(46),
|
|
/* 235 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(48),
|
|
/* 244 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(50),
|
|
/* 253 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(52),
|
|
/* 262 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(54),
|
|
/* 271 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(56),
|
|
/* 280 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(58),
|
|
/* 289 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(60),
|
|
/* 298 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(62),
|
|
/* 307 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(64),
|
|
/* 316 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(66),
|
|
/* 325 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(68),
|
|
/* 334 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(70),
|
|
/* 343 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(72),
|
|
/* 352 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(74),
|
|
/* 361 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(76),
|
|
/* 370 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(78),
|
|
/* 379 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(80),
|
|
/* 388 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(82),
|
|
/* 397 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(84),
|
|
/* 406 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(86),
|
|
/* 415 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(88),
|
|
/* 424 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(90),
|
|
/* 433 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(92),
|
|
/* 442 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(94),
|
|
/* 451 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(96),
|
|
/* 460 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(98),
|
|
/* 469 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(100),
|
|
/* 478 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(102),
|
|
/* 487 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(104),
|
|
/* 496 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(106),
|
|
/* 505 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(108),
|
|
/* 514 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(110),
|
|
/* 523 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(112),
|
|
/* 532 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(114),
|
|
/* 541 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(116),
|
|
/* 550 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(118),
|
|
/* 559 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(120),
|
|
/* 568 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(122),
|
|
/* 577 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(124),
|
|
/* 586 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(126),
|
|
/* 595 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(128),
|
|
/* 604 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(130),
|
|
/* 613 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(132),
|
|
/* 622 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(134),
|
|
/* 631 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(136),
|
|
/* 640 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(138),
|
|
/* 649 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(140),
|
|
/* 658 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(142),
|
|
/* 667 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(144),
|
|
/* 676 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(146),
|
|
/* 685 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(148),
|
|
/* 694 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(150),
|
|
/* 703 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(152),
|
|
/* 712 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(154),
|
|
/* 721 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(156),
|
|
/* 730 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(158),
|
|
/* 739 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(160),
|
|
/* 748 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(162),
|
|
/* 757 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(164),
|
|
/* 766 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(166),
|
|
/* 775 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(168),
|
|
/* 784 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(170),
|
|
/* 793 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(172),
|
|
/* 802 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(174),
|
|
/* 811 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(176),
|
|
/* 820 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(178),
|
|
/* 829 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(180),
|
|
/* 838 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(182),
|
|
/* 847 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(184),
|
|
/* 856 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(186),
|
|
/* 865 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(188),
|
|
/* 874 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(190),
|
|
/* 883 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(192),
|
|
/* 892 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(194),
|
|
/* 901 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(196),
|
|
/* 910 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(198),
|
|
/* 919 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(200),
|
|
/* 928 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(202),
|
|
/* 937 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(204),
|
|
/* 946 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(206),
|
|
/* 955 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(208),
|
|
/* 964 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(210),
|
|
/* 973 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(212),
|
|
/* 982 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(214),
|
|
/* 991 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(216),
|
|
/* 1000 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(218),
|
|
/* 1009 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(220),
|
|
/* 1018 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(222),
|
|
/* 1027 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(224),
|
|
/* 1036 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(226),
|
|
/* 1045 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(228),
|
|
/* 1054 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(230),
|
|
/* 1063 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(232),
|
|
/* 1072 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(234),
|
|
/* 1081 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(236),
|
|
/* 1090 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(238),
|
|
/* 1099 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(240),
|
|
/* 1108 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(242),
|
|
/* 1117 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(244),
|
|
/* 1126 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(246),
|
|
/* 1135 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(248),
|
|
/* 1144 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(250),
|
|
/* 1153 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(252),
|
|
/* 1162 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(254),
|
|
/* 1178 S> */ B(Wide), B(LdaNamedProperty), R16(arg0), U16(0), U16(256),
|
|
B(Star), R(0),
|
|
/* 1178 E> */ B(Wide), B(CallProperty0), R16(0), R16(arg0), U16(258),
|
|
/* 1185 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["func"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
function f(a) { return a.func(1).func(2).func(3); }
|
|
f(new (function Obj() { this.func = function(a) { return this; }})())
|
|
"
|
|
frame size: 5
|
|
parameter count: 2
|
|
bytecode array length: 51
|
|
bytecodes: [
|
|
/* 10 E> */ B(StackCheck),
|
|
/* 25 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0),
|
|
B(Star), R(2),
|
|
B(LdaSmi), I8(1),
|
|
B(Star), R(4),
|
|
/* 25 E> */ B(CallProperty1), R(2), R(arg0), R(4), U8(2),
|
|
B(Star), R(2),
|
|
/* 32 E> */ B(LdaNamedProperty), R(2), U8(0), U8(4),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(2),
|
|
B(Star), R(3),
|
|
/* 33 E> */ B(CallProperty1), R(1), R(2), R(3), U8(6),
|
|
B(Star), R(1),
|
|
/* 40 E> */ B(LdaNamedProperty), R(1), U8(0), U8(8),
|
|
B(Star), R(0),
|
|
B(LdaSmi), I8(3),
|
|
B(Star), R(2),
|
|
/* 41 E> */ B(CallProperty1), R(0), R(1), R(2), U8(10),
|
|
/* 49 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["func"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|