summaryrefslogtreecommitdiff
path: root/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TrapSystemCallHandler.asm
diff options
context:
space:
mode:
authorvboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>2016-04-11 19:08:38 +0000
committervboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>2016-04-11 19:08:38 +0000
commita626788213d5d827074da2100fa10ebb6bd4c075 (patch)
tree70e7f34c4fd09d8ea5339a841f3517ba5f7160f4 /src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TrapSystemCallHandler.asm
parente121a0f4c14f973368a440ceca79289ca709e433 (diff)
downloadVirtualBox-svn-a626788213d5d827074da2100fa10ebb6bd4c075.tar.gz
bs3kit: updates :-)
git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@60439 cfe28804-0f27-0410-a406-dd0f0b0b656f
Diffstat (limited to 'src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TrapSystemCallHandler.asm')
-rw-r--r--src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TrapSystemCallHandler.asm29
1 files changed, 16 insertions, 13 deletions
diff --git a/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TrapSystemCallHandler.asm b/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TrapSystemCallHandler.asm
index 817a509b015..34a7b474cb9 100644
--- a/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TrapSystemCallHandler.asm
+++ b/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TrapSystemCallHandler.asm
@@ -102,12 +102,12 @@ BS3_PROC_BEGIN_MODE Bs3TrapSystemCallHandler
%else
push ds
%ifdef TMPL_CMN_R86
- push BS3DATA16
+ push BS3_SEL_DATA16
%else
push RT_CONCAT(BS3_SEL_R0_DS,TMPL_BITS)
%endif
- pop ds ; DS = BS3DATA16_GROUP or FLAT and we can safely access data
- %if TMPL_BITS == 16 && (TMPL_MODE == BS3_MODE_SYS_RM || TMPL_MODE == BS3_MODE_SYS_PE16)
+ pop ds ; DS = BS3KIT_GRPNM_DATA16 or FLAT and we can safely access data
+ %if TMPL_BITS == 16 && (TMPL_MODE == BS3_MODE_RM || TMPL_MODE == BS3_MODE_PE16)
cmp byte [BS3_DATA16_WRT(g_uBs3CpuDetected)], BS3CPU_80286
jbe .prologue_pre_80386
%endif
@@ -122,7 +122,7 @@ BS3_PROC_BEGIN_MODE Bs3TrapSystemCallHandler
push ebp
push esp
pushfd
- %if TMPL_MODE == BS3_MODE_SYS_RM || TMPL_MODE == BS3_MODE_SYS_PE16
+ %if TMPL_MODE == BS3_MODE_RM || TMPL_MODE == BS3_MODE_PE16
jmp .prologue_end
.prologue_pre_80386:
@@ -156,7 +156,7 @@ BS3_PROC_BEGIN_MODE Bs3TrapSystemCallHandler
;
cmp ax, BS3_SYSCALL_LAST
ja .invalid_syscall
-%ifdef TMPL_16BIT
+%if TMPL_BITS == 16
mov bx, ax
shl bx, 1
jmp word [cs:.aoffSyscallHandlers + bx]
@@ -361,7 +361,7 @@ TMPL_BEGIN_TEXT
je .return_to_v8086_from_16bit_krnl
cmp bl, BS3_MODE_CODE_32
je .return_to_32bit_from_16bit_krnl
- %if TMPL_MODE == BS3_MODE_SYS_RM || TMPL_MODE == BS3_MODE_SYS_PE16
+ %if TMPL_MODE == BS3_MODE_RM || TMPL_MODE == BS3_MODE_PE16
cmp byte [BS3_DATA16_WRT(g_uBs3CpuDetected)], BS3CPU_80286
jbe .return_pre_80386
%endif
@@ -388,21 +388,21 @@ TMPL_BEGIN_TEXT
%endif
%if TMPL_BITS == 16
- %if TMPL_MODE == BS3_MODE_SYS_RM || TMPL_MODE == BS3_MODE_SYS_PE16
+ %if TMPL_MODE == BS3_MODE_RM || TMPL_MODE == BS3_MODE_PE16
; Variant of the above for 80286 and older.
.return_pre_80386:
add sp, 0ch
pop di
- pop di
+ pop bx ; dummy
pop si
- pop si
- pop dx
+ pop bx ; dummy
pop dx
+ pop bx ; dummy
pop cx
- pop cx
- pop ax
+ pop bx ; dummy
pop ax
- pop bx
+ pop bx ; dummy
+ pop bx ; pushed twice
pop bx
pop ds
pop bp
@@ -755,6 +755,9 @@ TMPL_BEGIN_TEXT
.save_context_full_return:
ret
+%if TMPL_BITS == 16
+ CPU 286
+%endif
;
; Internal function for converting a syscall pointer parameter (cx:xSI)