📄 proll.patch
字号:
diff -ruN proll_18.orig/Makefile proll-patch-15/Makefile--- proll_18.orig/Makefile 2002-09-13 14:16:59.000000000 +0000+++ proll-patch-15/Makefile 2005-11-09 18:14:51.000000000 +0000@@ -4,6 +4,7 @@ make -C krups-ser all make -C espresso all make -C espresso-ser all+ make -C qemu all clean: make -C mrcoffee clean@@ -11,3 +12,4 @@ make -C krups-ser clean make -C espresso clean make -C espresso-ser clean+ make -C qemu cleandiff -ruN proll_18.orig/qemu/Makefile proll-patch-15/qemu/Makefile--- proll_18.orig/qemu/Makefile 1970-01-01 00:00:00.000000000 +0000+++ proll-patch-15/qemu/Makefile 2005-08-14 10:25:06.000000000 +0000@@ -0,0 +1,123 @@+#+# proll:+# qemu/Makefile - make PROLL for QEMU+# $Id: proll.patch,v 1.6 2005/11/11 00:24:57 bellard Exp $+#+# Copyright 1999 Pete Zaitcev+# This is Free Software is licensed under terms of GNU General Public License.+#++CC = gcc++#CROSS = /usr/local/sparc/bin/sparc-sun-linux-+CROSS = sparc-unknown-linux-gnu-++CROSSCC = $(CROSS)gcc+CROSSLD = $(CROSS)ld+CROSSNM = $(CROSS)nm++RM = /bin/rm -f+ELFTOAOUT = elftoaout++#+SRC = ../src++# Due to remapping algorithm PROLBASE should be algned on PMD.+# We make PROLBASE a define instead of using _start because we+# want to shift it to form a PGD entry. A relocatable label will not work.+# Linux kernel expects us to be at LINUX_OPPROM_BEGVM <asm-sparc/openprom.h>.+PROLBASE = 0xffd00000+PROLRODATA = 0xffd08000+PROLDATA = 0xffd0b000+PROLSIZE = 240*1024++# Linux+# Fixed %g6 is for arch/sparc/kernel/head.S, it seems ok w/o -ffixed-g6.+# Kernel uses -fcall-used-g5 -fcall-used-g7, we probably do not need them.+# __ANSI__ is supposed to be on by default but it is not.+CFLAGS = -O2 -W -Wall -DPROLBASE=$(PROLBASE) -DPROLDATA=$(PROLDATA) -DPROLRODATA=$(PROLRODATA) -D__ANSI__=1 -I$(SRC) -mcpu=hypersparc -Wa,-xarch=v8 -g -DQEMU -m32 -fno-builtin+ASFLAGS = -D__ASSEMBLY__ -I$(SRC) -DPROLRODATA=$(PROLRODATA) -DPROLDATA=$(PROLDATA) -DPROLSIZE=$(PROLSIZE) -g -Wa,-xarch=v8 -Wa,-32+# Solaris or Linux/i386 cross compilation+#CFLAGS = -Iinclude -O++LDFLAGS = -N -Ttext $(PROLBASE) --section-start .rodata=$(PROLRODATA) -Tdata $(PROLDATA) -Tbss $(PROLDATA)++ALL = proll.aout+PROLLEXE = proll.elf++OBJS = head.o wuf.o wof.o main.o $(CONSOLE) \+ printf.o le.o system_qemu.o iommu.o \+ arp.o netinit.o bootp.o packet.o tftp.o udp.o sched_4m.o openprom.o \+ vconsole.o hconsole.o rconsole.o vcons_zs.o esp.o++all: $(ALL)++$(PROLLEXE): $(OBJS)+ $(CROSSLD) $(LDFLAGS) -o $(PROLLEXE) $(OBJS)++head.o: head.S $(SRC)/phys_jj.h \+ $(SRC)/asi.h $(SRC)/psr.h $(SRC)/crs.h+ $(CROSSCC) $(ASFLAGS) -DPROLBASE=$(PROLBASE) -o $*.o -c $*.S++main.o: main.c $(SRC)/asi.h $(SRC)/pgtsrmmu.h $(SRC)/iommu.h \+ $(SRC)/phys_jj.h $(SRC)/vconsole.h $(SRC)/version.h $(SRC)/general.h \+ $(SRC)/net.h $(SRC)/romlib.h $(SRC)/netpriv.h $(SRC)/arpa.h $(SRC)/system.h+ $(CROSSCC) $(CFLAGS) -c $*.c+openprom.o: openprom.c $(SRC)/openprom.h $(SRC)/general.h $(SRC)/romlib.h \+ $(SRC)/vconsole.h $(SRC)/system.h $(SRC)/phys_jj.h+ $(CROSSCC) $(CFLAGS) -c $*.c++system_qemu.o: system_qemu.c $(SRC)/vconsole.h $(SRC)/pgtsrmmu.h \+ $(SRC)/timer.h $(SRC)/general.h $(SRC)/net.h $(SRC)/romlib.h $(SRC)/asi.h \+ $(SRC)/netpriv.h $(SRC)/arpa.h $(SRC)/system.h $(SRC)/crs.h+ $(CROSSCC) $(CFLAGS) -c $*.c+iommu.o: $(SRC)/iommu.c $(SRC)/pgtsrmmu.h $(SRC)/phys_jj.h $(SRC)/iommu.h \+ $(SRC)/vconsole.h $(SRC)/general.h $(SRC)/romlib.h $(SRC)/system.h $(SRC)/asi.h+ $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c+vconsole.o: $(SRC)/vconsole.c $(SRC)/vconsole.h $(SRC)/hconsole.h+ $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c+vcons_zs.o: $(SRC)/vcons_zs.c $(SRC)/vconsole.h $(SRC)/system.h+ $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c+hconsole.o: $(SRC)/hconsole.c $(SRC)/hconsole.h $(SRC)/rconsole.h $(SRC)/phys_jj.h+ $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c+rconsole.o: $(SRC)/rconsole.c $(SRC)/rconsole.h+ $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c+printf.o: $(SRC)/printf.c+ $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c+le.o: $(SRC)/le.c $(SRC)/dma.h $(SRC)/system.h $(SRC)/netpriv.h $(SRC)/romlib.h $(SRC)/general.h $(SRC)/net.h $(SRC)/phys_jj.h+ $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c+esp.o: $(SRC)/esp.c $(SRC)/dma.h $(SRC)/system.h $(SRC)/romlib.h $(SRC)/general.h $(SRC)/phys_jj.h+ $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c+arp.o: $(SRC)/arp.c $(SRC)/general.h $(SRC)/net.h $(SRC)/romlib.h $(SRC)/netpriv.h $(SRC)/arp.h+ $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c+netinit.o: $(SRC)/netinit.c $(SRC)/general.h $(SRC)/net.h $(SRC)/romlib.h $(SRC)/netpriv.h $(SRC)/arp.h $(SRC)/ip.h $(SRC)/udp.h+ $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c+tftp.o: $(SRC)/tftp.c $(SRC)/general.h $(SRC)/net.h $(SRC)/arpa.h $(SRC)/romlib.h $(SRC)/tftp.h+ $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c+udp.o: $(SRC)/udp.c $(SRC)/general.h $(SRC)/net.h $(SRC)/romlib.h $(SRC)/netpriv.h $(SRC)/arp.h $(SRC)/ip.h $(SRC)/udp.h+ $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c+packet.o: $(SRC)/packet.c $(SRC)/general.h $(SRC)/net.h $(SRC)/romlib.h $(SRC)/netpriv.h+ $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c+sched_4m.o: $(SRC)/sched_4m.c $(SRC)/system.h $(SRC)/general.h $(SRC)/romlib.h $(SRC)/phys_jj.h+ $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c+bootp.o: $(SRC)/bootp.c $(SRC)/general.h $(SRC)/net.h \+ $(SRC)/arpa.h $(SRC)/romlib.h $(SRC)/system.h $(SRC)/bootp.h+ $(CROSSCC) $(CFLAGS) -DNOBPEXT=1 -c $(SRC)/$*.c++wuf.o: $(SRC)/wuf.S+ $(CROSSCC) $(ASFLAGS) -o $*.o -c $(SRC)/$*.S+wof.o: $(SRC)/wof.S+ $(CROSSCC) $(ASFLAGS) -o $*.o -c $(SRC)/$*.S++#genlab.o: genlab.c+# $(CC) -c $*.c+#+#genlab: genlab.o+# $(CC) -o genlab genlab.o++clean:+ $(RM) $(OBJS)+ $(RM) $(PROLLEXE) proll.aout++proll.aout: $(PROLLEXE)+ $(ELFTOAOUT) -o proll.aout $(PROLLEXE)diff -ruN proll_18.orig/qemu/head.S proll-patch-15/qemu/head.S--- proll_18.orig/qemu/head.S 1970-01-01 00:00:00.000000000 +0000+++ proll-patch-15/qemu/head.S 2005-07-12 22:24:17.000000000 +0000@@ -0,0 +1,543 @@+/**+ ** Standalone startup code for Linux PROM emulator.+ ** Copyright 1999 Pete A. Zaitcev+ ** This code is licensed under GNU General Public License.+ **/+/*+ * $Id: proll.patch,v 1.6 2005/11/11 00:24:57 bellard Exp $+ */++#include <psr.h>+#include <asi.h>+#include <crs.h>+/* #include <asm/head.h> */ /* Trap entries. Do not use. */+#include "phys_jj.h"++#define C_LABEL(name) name+#define REGWIN_SZ 0x40++#define WRITE_PAUSE nop; nop; nop; /* Have to do this after %wim/%psr chg */++ /* 22 is 24-2, (va)>>(SRMMU_PGDIR_SHIFT-PTESIZESHFT) */+#define VATOPGDOFF(va) (((va)>>22)&0x3FC)+#define VATOPMDOFF(va) (((va)>>16)&0xFC)++#define NOP_INSN 0x01000000 /* Used to patch sparc_save_state */++/* Here are some trap goodies */++#if 0+/* Generic trap entry. */+#define TRAP_ENTRY(type, label) \+ rd %psr, %l0; b label; rd %wim, %l3; nop;+#endif++/* Data/text faults. */+#define SRMMU_TFAULT rd %psr, %l0; rd %wim, %l3; b C_LABEL(srmmu_fault); mov 1, %l7;+#define SRMMU_DFAULT rd %psr, %l0; rd %wim, %l3; b C_LABEL(srmmu_fault); mov 0, %l7;++#if 0+/* This is for traps we should NEVER get. */+#define BAD_TRAP(num) \+ rd %psr, %l0; mov num, %l7; b bad_trap_handler; rd %wim, %l3;++/* This is for traps when we want just skip the instruction which caused it */+#define SKIP_TRAP(type, name) \+ jmpl %l2, %g0; rett %l2 + 4; nop; nop;++/* Notice that for the system calls we pull a trick. We load up a+ * different pointer to the system call vector table in %l7, but call+ * the same generic system call low-level entry point. The trap table+ * entry sequences are also HyperSparc pipeline friendly ;-)+ */++/* Software trap for Linux system calls. */+#define LINUX_SYSCALL_TRAP \+ sethi %hi(C_LABEL(sys_call_table)), %l7; \+ or %l7, %lo(C_LABEL(sys_call_table)), %l7; \+ b linux_sparc_syscall; \+ rd %psr, %l0;++/* Software trap for SunOS4.1.x system calls. */+#define SUNOS_SYSCALL_TRAP \+ rd %psr, %l0; \+ sethi %hi(C_LABEL(sunos_sys_table)), %l7; \+ b linux_sparc_syscall; \+ or %l7, %lo(C_LABEL(sunos_sys_table)), %l7;++/* Software trap for Slowaris system calls. */+#define SOLARIS_SYSCALL_TRAP \+ b solaris_syscall; \+ rd %psr, %l0; \+ nop; \+ nop;++#define INDIRECT_SOLARIS_SYSCALL(x) \+ mov x, %g1; \+ b solaris_syscall; \+ rd %psr, %l0; \+ nop;++#define BREAKPOINT_TRAP \+ b breakpoint_trap; \+ rd %psr,%l0; \+ nop; \+ nop;++/* Software trap for Sparc-netbsd system calls. */+#define NETBSD_SYSCALL_TRAP \+ sethi %hi(C_LABEL(sys_call_table)), %l7; \+ or %l7, %lo(C_LABEL(sys_call_table)), %l7; \+ b bsd_syscall; \+ rd %psr, %l0;++/* The Get Condition Codes software trap for userland. */+#define GETCC_TRAP \+ b getcc_trap_handler; mov %psr, %l0; nop; nop;++/* The Set Condition Codes software trap for userland. */+#define SETCC_TRAP \+ b setcc_trap_handler; mov %psr, %l0; nop; nop;++/* This is for hard interrupts from level 1-14, 15 is non-maskable (nmi) and+ * gets handled with another macro.+ */+#define TRAP_ENTRY_INTERRUPT(int_level) \+ mov int_level, %l7; rd %psr, %l0; b real_irq_entry; rd %wim, %l3;++/* NMI's (Non Maskable Interrupts) are special, you can't keep them+ * from coming in, and basically if you get one, the shows over. ;(+ * On the sun4c they are usually asynchronous memory errors, on the+ * the sun4m they could be either due to mem errors or a software+ * initiated interrupt from the prom/kern on an SMP box saying "I+ * command you to do CPU tricks, read your mailbox for more info."+ */+#define NMI_TRAP \+ rd %wim, %l3; b linux_trap_nmi_sun4c; mov %psr, %l0; nop;++#endif++/* Window overflows/underflows are special and we need to try to be as+ * efficient as possible here....+ */+#define WINDOW_SPILL \+ rd %psr, %l0; rd %wim, %l3; b spill_window_entry; nop;++#define WINDOW_FILL \+ rd %psr, %l0; rd %wim, %l3; b fill_window_entry; nop;++#define STUB_TRAP ba stub_trap; nop; nop; nop;++#define TRAP_ENTRY(a,b) STUB_TRAP+#define SKIP_TRAP(a,b) STUB_TRAP+#define SUNOS_SYSCALL_TRAP STUB_TRAP+#define SOLARIS_SYSCALL_TRAP STUB_TRAP+#define NETBSD_SYSCALL_TRAP STUB_TRAP+#define LINUX_SYSCALL_TRAP STUB_TRAP+#define BREAKPOINT_TRAP STUB_TRAP+#define NMI_TRAP STUB_TRAP+#define GETCC_TRAP STUB_TRAP+#define SETCC_TRAP STUB_TRAP+#define BAD_TRAP(n) STUB_TRAP+#define TRAP_ENTRY_INTERRUPT(i) STUB_TRAP+#define INDIRECT_SOLARIS_SYSCALL(i) STUB_TRAP++ .section ".text"+ .globl start, _start+_start:+start:+ .globl spill_window_entry, fill_window_entry++#define EXPORT_TRAP(trap) \+ .globl trap; \+ .type trap,function; \+ .size trap, 16++EXPORT_TRAP(t_zero)+EXPORT_TRAP(t_wovf)+EXPORT_TRAP(t_wunf)+EXPORT_TRAP(t_irq1)+EXPORT_TRAP(t_irq2)+EXPORT_TRAP(t_irq3)+EXPORT_TRAP(t_irq4)+EXPORT_TRAP(t_irq5)+EXPORT_TRAP(t_irq6)+EXPORT_TRAP(t_irq7)+EXPORT_TRAP(t_irq8)+EXPORT_TRAP(t_irq9)+EXPORT_TRAP(t_irq10)+EXPORT_TRAP(t_irq11)+EXPORT_TRAP(t_irq12)+EXPORT_TRAP(t_irq13)+EXPORT_TRAP(t_irq14)+EXPORT_TRAP(t_irq15)++C_LABEL(trapbase):+t_zero: b goprol; nop; nop; nop;+t_tflt: SRMMU_TFAULT /* Inst. Access Exception */+t_bins: TRAP_ENTRY(0x2, bad_instruction) /* Illegal Instruction */+t_pins: TRAP_ENTRY(0x3, priv_instruction) /* Privileged Instruction */+t_fpd: TRAP_ENTRY(0x4, fpd_trap_handler) /* Floating Point Disabled */+t_wovf: WINDOW_SPILL /* Window Overflow */+t_wunf: WINDOW_FILL /* Window Underflow */+t_mna: TRAP_ENTRY(0x7, mna_handler) /* Memory Address Not Aligned */+t_fpe: TRAP_ENTRY(0x8, fpe_trap_handler) /* Floating Point Exception */+t_dflt: SRMMU_DFAULT /* Data Miss Exception */+t_tio: TRAP_ENTRY(0xa, do_tag_overflow) /* Tagged Instruction Ovrflw */+t_wpt: TRAP_ENTRY(0xb, do_watchpoint) /* Watchpoint Detected */+t_badc: BAD_TRAP(0xc) BAD_TRAP(0xd) BAD_TRAP(0xe) BAD_TRAP(0xf) BAD_TRAP(0x10)+t_irq1: TRAP_ENTRY_INTERRUPT(1) /* IRQ Software/SBUS Level 1 */+t_irq2: TRAP_ENTRY_INTERRUPT(2) /* IRQ SBUS Level 2 */+t_irq3: TRAP_ENTRY_INTERRUPT(3) /* IRQ SCSI/DMA/SBUS Level 3 */+t_irq4: TRAP_ENTRY_INTERRUPT(4) /* IRQ Software Level 4 */+t_irq5: TRAP_ENTRY_INTERRUPT(5) /* IRQ SBUS/Ethernet Level 5 */+t_irq6: TRAP_ENTRY_INTERRUPT(6) /* IRQ Software Level 6 */+t_irq7: TRAP_ENTRY_INTERRUPT(7) /* IRQ Video/SBUS Level 5 */+t_irq8: TRAP_ENTRY_INTERRUPT(8) /* IRQ SBUS Level 6 */+t_irq9: TRAP_ENTRY_INTERRUPT(9) /* IRQ SBUS Level 7 */+t_irq10:TRAP_ENTRY_INTERRUPT(10) /* IRQ Timer #1 (one we use) */+t_irq11:TRAP_ENTRY_INTERRUPT(11) /* IRQ Floppy Intr. */+t_irq12:TRAP_ENTRY_INTERRUPT(12) /* IRQ Zilog serial chip */+t_irq13:TRAP_ENTRY_INTERRUPT(13) /* IRQ Audio Intr. */+t_irq14:TRAP_ENTRY_INTERRUPT(14) /* IRQ Timer #2 */+t_nmi: NMI_TRAP /* Level 15 (NMI) */+t_racc: TRAP_ENTRY(0x20, do_reg_access) /* General Register Access Error */+t_iacce:BAD_TRAP(0x21) /* Instr Access Error */+t_bad22:BAD_TRAP(0x22) BAD_TRAP(0x23)+t_cpdis:TRAP_ENTRY(0x24, do_cp_disabled) /* Co-Processor Disabled */+t_uflsh:SKIP_TRAP(0x25, unimp_flush) /* Unimplemented FLUSH inst. */+t_bad26:BAD_TRAP(0x26) BAD_TRAP(0x27)+t_cpexc:TRAP_ENTRY(0x28, do_cp_exception) /* Co-Processor Exception */+t_dacce:SRMMU_DFAULT /* Data Access Error */+t_hwdz: TRAP_ENTRY(0x2a, do_hw_divzero) /* Division by zero, you lose... */+t_dserr:BAD_TRAP(0x2b) /* Data Store Error */+t_daccm:BAD_TRAP(0x2c) /* Data Access MMU-Miss */+t_bad2d: BAD_TRAP(0x2d) BAD_TRAP(0x2e) BAD_TRAP(0x2f)+ BAD_TRAP(0x30) BAD_TRAP(0x31) BAD_TRAP(0x32) BAD_TRAP(0x33)+ BAD_TRAP(0x34) BAD_TRAP(0x35) BAD_TRAP(0x36) BAD_TRAP(0x37)+ BAD_TRAP(0x38) BAD_TRAP(0x39) BAD_TRAP(0x3a) BAD_TRAP(0x3b)+t_iaccm:BAD_TRAP(0x3c) /* Instr Access MMU-Miss */+ BAD_TRAP(0x3d) BAD_TRAP(0x3e) BAD_TRAP(0x3f)+ BAD_TRAP(0x40) BAD_TRAP(0x41) BAD_TRAP(0x42) BAD_TRAP(0x43)+ BAD_TRAP(0x44) BAD_TRAP(0x45) BAD_TRAP(0x46) BAD_TRAP(0x47)+ BAD_TRAP(0x48) BAD_TRAP(0x49) BAD_TRAP(0x4a) BAD_TRAP(0x4b)+ BAD_TRAP(0x4c) BAD_TRAP(0x4d) BAD_TRAP(0x4e) BAD_TRAP(0x4f)+ BAD_TRAP(0x50) BAD_TRAP(0x51) BAD_TRAP(0x52) BAD_TRAP(0x53)+ BAD_TRAP(0x54) BAD_TRAP(0x55) BAD_TRAP(0x56) BAD_TRAP(0x57)+ BAD_TRAP(0x58) BAD_TRAP(0x59) BAD_TRAP(0x5a) BAD_TRAP(0x5b)+ BAD_TRAP(0x5c) BAD_TRAP(0x5d) BAD_TRAP(0x5e) BAD_TRAP(0x5f)+ BAD_TRAP(0x60) BAD_TRAP(0x61) BAD_TRAP(0x62) BAD_TRAP(0x63)+ BAD_TRAP(0x64) BAD_TRAP(0x65) BAD_TRAP(0x66) BAD_TRAP(0x67)+ BAD_TRAP(0x68) BAD_TRAP(0x69) BAD_TRAP(0x6a) BAD_TRAP(0x6b)+ BAD_TRAP(0x6c) BAD_TRAP(0x6d) BAD_TRAP(0x6e) BAD_TRAP(0x6f)+ BAD_TRAP(0x70) BAD_TRAP(0x71) BAD_TRAP(0x72) BAD_TRAP(0x73)+ BAD_TRAP(0x74) BAD_TRAP(0x75) BAD_TRAP(0x76) BAD_TRAP(0x77)+ BAD_TRAP(0x78) BAD_TRAP(0x79) BAD_TRAP(0x7a) BAD_TRAP(0x7b)+ BAD_TRAP(0x7c) BAD_TRAP(0x7d) BAD_TRAP(0x7e) BAD_TRAP(0x7f)+t_sunos:SUNOS_SYSCALL_TRAP /* SunOS System Call */+t_sbkpt:BREAKPOINT_TRAP /* Software Breakpoint/KGDB */+t_divz: BAD_TRAP(0x82) /* Divide by zero trap */+t_flwin:TRAP_ENTRY(0x83, do_flush_windows) /* Flush Windows Trap */+t_clwin:BAD_TRAP(0x84) /* Clean Windows Trap */+t_rchk: BAD_TRAP(0x85) /* Range Check */+t_funal:BAD_TRAP(0x86) /* Fix Unaligned Access Trap */+t_iovf: BAD_TRAP(0x87) /* Integer Overflow Trap */+t_slowl:SOLARIS_SYSCALL_TRAP /* Slowaris System Call */+t_netbs:NETBSD_SYSCALL_TRAP /* Net-B.S. System Call */+t_bad8a:BAD_TRAP(0x8a) BAD_TRAP(0x8b) BAD_TRAP(0x8c) BAD_TRAP(0x8d)+ BAD_TRAP(0x8e) BAD_TRAP(0x8f)+t_linux:LINUX_SYSCALL_TRAP /* Linux System Call */+t_bad91:BAD_TRAP(0x91) BAD_TRAP(0x92) BAD_TRAP(0x93)+ BAD_TRAP(0x94) BAD_TRAP(0x95) BAD_TRAP(0x96) BAD_TRAP(0x97)+ BAD_TRAP(0x98) BAD_TRAP(0x99) BAD_TRAP(0x9a) BAD_TRAP(0x9b) BAD_TRAP(0x9c) BAD_TRAP(0x9d) BAD_TRAP(0x9e) BAD_TRAP(0x9f)+t_getcc:GETCC_TRAP /* Get Condition Codes */+t_setcc:SETCC_TRAP /* Set Condition Codes */+t_bada2:BAD_TRAP(0xa2) BAD_TRAP(0xa3)+ BAD_TRAP(0xa4) BAD_TRAP(0xa5) BAD_TRAP(0xa6)+t_slowi:INDIRECT_SOLARIS_SYSCALL(156)+ BAD_TRAP(0xa8) BAD_TRAP(0xa9) BAD_TRAP(0xaa) BAD_TRAP(0xab)+ BAD_TRAP(0xac) BAD_TRAP(0xad) BAD_TRAP(0xae) BAD_TRAP(0xaf)+ BAD_TRAP(0xb0) BAD_TRAP(0xb1) BAD_TRAP(0xb2) BAD_TRAP(0xb3)+ BAD_TRAP(0xb4) BAD_TRAP(0xb5) BAD_TRAP(0xb6) BAD_TRAP(0xb7)+ BAD_TRAP(0xb8) BAD_TRAP(0xb9) BAD_TRAP(0xba) BAD_TRAP(0xbb)+ BAD_TRAP(0xbc) BAD_TRAP(0xbd) BAD_TRAP(0xbe) BAD_TRAP(0xbf)+t_badc0:BAD_TRAP(0xc0) BAD_TRAP(0xc1) BAD_TRAP(0xc2) BAD_TRAP(0xc3)+ BAD_TRAP(0xc4) BAD_TRAP(0xc5) BAD_TRAP(0xc6) BAD_TRAP(0xc7)+ BAD_TRAP(0xc8) BAD_TRAP(0xc9) BAD_TRAP(0xca) BAD_TRAP(0xcb)+ BAD_TRAP(0xcc) BAD_TRAP(0xcd) BAD_TRAP(0xce) BAD_TRAP(0xcf)+ BAD_TRAP(0xd0) BAD_TRAP(0xd1) BAD_TRAP(0xd2) BAD_TRAP(0xd3)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -