1557 // creation
1558 AccessMonitor(Value obj, int monitor_no, ValueStack* state_before = NULL)
1559 : StateSplit(illegalType, state_before)
1560 , _obj(obj)
1561 , _monitor_no(monitor_no)
1562 {
1563 set_needs_null_check(true);
1564 ASSERT_VALUES
1565 }
1566
1567 // accessors
1568 Value obj() const { return _obj; }
1569 int monitor_no() const { return _monitor_no; }
1570
1571 // generic
1572 virtual void input_values_do(ValueVisitor* f) { StateSplit::input_values_do(f); f->visit(&_obj); }
1573 };
1574
1575
1576 LEAF(MonitorEnter, AccessMonitor)
1577 public:
1578 // creation
1579 MonitorEnter(Value obj, int monitor_no, ValueStack* state_before)
1580 : AccessMonitor(obj, monitor_no, state_before)
1581 {
1582 ASSERT_VALUES
1583 }
1584
1585 // generic
1586 virtual bool can_trap() const { return true; }
1587 };
1588
1589
1590 LEAF(MonitorExit, AccessMonitor)
1591 public:
1592 // creation
1593 MonitorExit(Value obj, int monitor_no)
1594 : AccessMonitor(obj, monitor_no, NULL)
1595 {
1596 ASSERT_VALUES
1597 }
1598 };
1599
1600
1601 LEAF(Intrinsic, StateSplit)
1602 private:
1603 vmIntrinsics::ID _id;
|
1557 // creation
1558 AccessMonitor(Value obj, int monitor_no, ValueStack* state_before = NULL)
1559 : StateSplit(illegalType, state_before)
1560 , _obj(obj)
1561 , _monitor_no(monitor_no)
1562 {
1563 set_needs_null_check(true);
1564 ASSERT_VALUES
1565 }
1566
1567 // accessors
1568 Value obj() const { return _obj; }
1569 int monitor_no() const { return _monitor_no; }
1570
1571 // generic
1572 virtual void input_values_do(ValueVisitor* f) { StateSplit::input_values_do(f); f->visit(&_obj); }
1573 };
1574
1575
1576 LEAF(MonitorEnter, AccessMonitor)
1577 bool _maybe_valuetype;
1578 public:
1579 // creation
1580 MonitorEnter(Value obj, int monitor_no, ValueStack* state_before, bool maybe_valuetype)
1581 : AccessMonitor(obj, monitor_no, state_before)
1582 , _maybe_valuetype(maybe_valuetype)
1583 {
1584 ASSERT_VALUES
1585 }
1586
1587 // accessors
1588 bool maybe_valuetype() const { return _maybe_valuetype; }
1589
1590 // generic
1591 virtual bool can_trap() const { return true; }
1592 };
1593
1594
1595 LEAF(MonitorExit, AccessMonitor)
1596 public:
1597 // creation
1598 MonitorExit(Value obj, int monitor_no)
1599 : AccessMonitor(obj, monitor_no, NULL)
1600 {
1601 ASSERT_VALUES
1602 }
1603 };
1604
1605
1606 LEAF(Intrinsic, StateSplit)
1607 private:
1608 vmIntrinsics::ID _id;
|