;
; Реализация среды исполнения языка программирования
; Объектно-ориентированный продвинутый векторный транслятор
;
; Copyright © 2021, 2024 Малик Разработчик
;
; Это свободная программа: вы можете перераспространять ее и/или изменять
; ее на условиях Меньшей Стандартной общественной лицензии GNU в том виде,
; в каком она была опубликована Фондом свободного программного обеспечения;
; либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.
;
; Эта программа распространяется в надежде, что она будет полезной,
; но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
; или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ. Подробнее см. в Меньшей Стандартной
; общественной лицензии GNU.
;
; Вы должны были получить копию Меньшей Стандартной общественной лицензии GNU
; вместе с этой программой. Если это не так, см.
; <https://www.gnu.org/licenses/>.
;
; <fold функции инструкций высокого уровня>
; <fold код создания инстанции исключения и передачи управления в блок обработки исключений>
proc inst$throw
add qword [rbx+ctxt$grd], -$0c00
__push $02
mov qword [rsp+$18], $00
mov qword [rsp+$10], r01q
mov qword [rsp+$08], $00
mov qword [rsp+$00], r01q
call r00q
mov r01q, [rsp+$00]
__pop $01
add qword [rbx+ctxt$grd], $0c00
jmp qword [rbx+ctxt$ehb]
end_proc
; </fold>
; <fold тексты исходного кода остальных функций>
include "exception.inc"
include "tagged-stack.inc"
include "read.array-component.inc"
include "write.array-component.inc"
include "cast.real.inc"
include "cast.double.inc"
include "cast.float.inc"
include "cast.long.inc"
include "scalar.mul.inc"
include "scalar.div.inc"
include "scalar.divu.inc"
include "scalar.rem.inc"
include "scalar.remu.inc"
include "vector.pck.inc"
include "vector.shr.inc"
include "vector.shru.inc"
include "vector.shl.inc"
include "vector.hmul.inc"
include "vector.hmulu.inc"
; </fold>
; </fold>